# Руководство Subtitle Workshop

### Версия Subtitle Workshop: 2.51

##### Наилучшее средство для обработки субтитров!

Copyright © 2001-2004 URUSoft.
(Все комбинации клавиш, упомянутые в данном руководстве приведены для установок по умолчанию)

- Глава 1: Введение в Subtitle Workshop
  - 1.1 Основной обзор
  - 1.2 Модуль чтения и записи
    - 1.2.1 Что такое URUSoft Subtitle API?
  - 1.3 Внешний вид
  - 1.4 Начало работы
    - 1.4.1 Загрузка файла субтитров
    - 1.4.2 Загрузка видеофайла
    - 1.4.3 Создание нового файла
    - 1.4.4 Добавление субтитров
    - 1.4.5 Удаление субтитров
    - 1.4.6 Редактирование субтитров вручную
    - 1.4.7 Стили и цвета
    - 1.4.8 FPS и начальные FPS
  - 1.5 Параметры командной строки
  - 1.6 Файлы языков
  - 1.7 Свои форматы
- Глава 2: Возможности, связанные со временем
  - 2.1 Изменение частоты
  - 2.2 Установка задержки
  - 2.3 Выравнивание субтитров
    - 2.2.1 Метод 1: простое выравнивание, первый и последний диалог
    - 2.2.2 Метод 2: синхронизация по двум точкам
    - 2.2.3 Метод 3: выравнивание по синхронизированным субтитрам
    - 2.2.4 Метод 4: расширенное выравнивание
  - 2.4 Время показа
  - 2.5 Увеличение/уменьшение времени
  - 2.6 Загрузка времени из файла
  - 2.7 Увеличение длительности
  - 2.8 Автоматическая длительность
  - 2.9 Сдвиг субтитров
- Глава 3: Возможности, связанные с текстом и субтитрами
  - 3.1 Выравнивание строк
  - 3.2 Изменение регистра
  - 3.3 Объединить строки
  - 3.4 Разделение субтитров
  - 3.5 Установка максимальной длины строки
  - 3.6 Загрузка текста из файла
  - 3.7 Объединение субтитров
  - 3.8 Переворот текста
    - 3.8.1 Переворот текста
    - 3.8.2 Исправление знаков препинания
  - 3.8 Сортировка
  - 3.10 Удаление многоточий
  - 3.11 Поиск и Замена
  - 3.12 Помеченные субтитры
- Глава 4: Настройки
  - 4.1 Основные
    - 4.1.1 Дополнительно
    - 4.1.2 Символы
  - 4.2 Форматы
  - 4.3 Типы файлов
  - 4.4 Сохранить
  - 4.5 Предварительный показ
    - 4.5.1 Субтитры
  - 4.6 Внешний показ
    - 4.6.1 Основные
    - 4.6.2 Дополнительно
  - 4.7 Внешний вид
    - 4.7.1 Программа
    - 4.7.2 Список
    - 4.7.3 Меню
- Глава 5: Инструменты
  - 5.1 Орфография
  - 5.2 Массовая конвертация
  - 5.3 Разрезание субтитров
  - 5.4 Объединение субтитров
  - 5.5 Информация и ошибки
    - 5.5.1 Ошибки и исправления
    - 5.5.2 Настройки
    - 5.5.3 Замена после распознавания текста (скрипты OCR)
    - 5.5.4 Синтаксис регулярных выражений
  - 5.6 Взять FPS из AVI
  - 5.7 Внешний показ
  - 5.8 Встроенный предварительный показ
  - 5.9 Извлечение языка из многоязыковых SAMI
- ЧАсто задаваемые ВОпросы [ЧАВО]
- Контактная информация
- Лицензия

## Глава 1: Введение в Subtitle Workshop

### 1.1 Основной обзор

Subtitle Workshop является наиболее полной, эффективной и удобной программой для обработки субтитров. Она поддерживает все форматы субтитров, которые могут потребоваться, и имеет все возможности, которые должна содержать программа для обработки субтитров. Subtitle Workshop превращает создание/редактирование/конвертирование субтитров в удовольствие, дружественный и интуитивный интерфейс включает в себя удобные меню с различными функциями, высокую скорость и стабильность работы, значительно снижая время, затрачиваемое на редактирование субтитров. Программа поддерживает проверку орфографии и предварительный показ видео, которые ещё более упрощают задачу. Наилучший выбор для начинающего, знатока или фансаббера. Попробуйте, и вы забудете про другие программы!
Subtitle Workshop создавался для того, чтобы редактирование субтитров стало очень простым, в то же время позволяя выполнять все нужные и не самые нужные операции, делая жизнь переводчика или редактора субтитров проще. Внешний вид - один из многих параметров, которые характеризуют Subtitle Workshop. Большинство функций объясняют сами себя так, что даже ребёнок может использовать эту программу.
Полный список возможностей:

- Модуль чтения и записи
  - Основан на URUSoft SubtitleAPI, новые форматы могут быть легко добавлены посредством скачивания обновлённой версии dll.
  - В данный момент (SubtitleAPI версии 1.05) поддерживается 56 форматов субтитров.
  - Поддерживаются как субтитры основанные на времени, так и на кадрах.
  - Возможность загрузки текстовых файлов для последующей простановки времени.
  - Поддерживается чтение и запись тэгов стилей (жирный, наклонный, подчёркнутый) и цветовых тэгов в тех форматах, которые их поддерживают.
  - Настройки вывода в форматах DVDSubtitle, SAMI, Sonic Scenarist, SubStation Alpha, SubViewer 1 & 2 и TMPlayer.
  - Возможность сохранения субтитров в формате, заданном пользователем.
- Интерфейс
  - Дружественный к пользователю.
  - Настраиваемые комбинации клавиш.
  - Многоязыковая поддержка (в данный момент более 35 языков!).
  - Переключение между интерфейсами, включение и выключение режимов Предварительного показа и Перевода.
  - Удобный "Режим переводчика".
- Предварительный показ
  - Интегрирован в главное окно.
  - Показ субтитров поверх видео.
  - Информация о загруженном видеофайле.
  - Возможность выбора цветов субтитров, фона (или прозрачность), обводка, тень, толщина обводки и тени субтитров.
  - НЕ основан на Windows Media Player, что даёт более высокую производительность и качество.
- Исправление субтитров
  - Оптимизированные функции для получения наибольшей скорости и эффективности.
  - Лёгкая и точная настройка для замены символов после OCR (распознавание текста), возможность использования регулярных выражений.
  - Мощная настраиваемая система поиска и исправления ошибок.
  - Возможность отмечать ошибки в основном окне при помощи разных цветов для лёгкого обнаружения.
  - При необходимости включение проверки/исправления ошибок во время загрузки субтитров.
  - Проверки и исправления (пользователь имеет возможность настраивать): пустые субтитры, субтитры без букв, пересечение, неправильные значения, субтитры для глухих, текст перед двоеточием (":") (по желанию - "Только если текст в верхнем регистре"), ненужные точки, "-" в однострочных субтитрах, многострочные субтитры, запрещённые символы (настраиваются), повторяющиеся символы (настраиваются), повторяющиеся субтитры (настраивающийся допуск времени), ошибки распознавания текста (OCR), пробелы перед выбранным символом, пробелы после выбранного символа, ненужные пустоты, слишком большая/маленькая длительность и слишком длинные строки (только поиск).
- Основное
  - Возможность настройки.
  - Многоуровневая система Отмены/Применения (Undo/Redo).
  - Проверка орфографии при помощи Microsoft Word, а следовательно, поддержка всех установленных языков.
  - Создание новых субтитров "с нуля".
  - Лёгкое добавление и удаление субтитров клавишами "Insert" и "Delete".
  - Разрезание файла (по выбранному субтитру, по заданному субтитру, по заданному времени, по заданному кадру, по концу видео), на требуемое количество частей (одинаковых по времени, по количеству строк или по концу нескольких видеофайлов).
  - Соединение бесконечного числа файлов, субтитры могут быть в разных форматах с разной частотой кадра (можно выбирать FPS для каждого файла отдельно).
  - Два метода для получения FPS из видео: без применения DirectX (только поддержка AVI) и используя DirectX (поддержка всех форматов видео, но более медленный).
  - Возможность выбора расширений для привязки к программе.
  - Поддержка drag & drop (субтитры и видеофайлы).
  - Поддержка командной строки.
  - Список свежих файлов (настраиваемое количество от 0 до 20).
- Операции со временем
  - Установка задержки (положительная или отрицательная, время или кадры).
  - Установка продолжительности (максимальная и минимальная).
  - Выравнивание субтитров при помощи одного из четырёх методов: 1- первый и последний диалог видео, 2- синхронизация по двум точкам (линейный алгоритм) и 3- выравнивание по синхронизированным субтитрам и 4 - расширенное выравнивание по многочисленным точкам.
  - "Увеличение/уменьшение времени" для изменения окончания времени показа субтитров, используя различные условия.
  - "Автоматическая длительность" для расчёта длительности субтитра, используя введённую формулу.
  - Изменение FPS (кадры в секунду) одним щелчком.
  - "Увеличение длительности" выбранного субтитра до начала следующего.
  - "Сдвиг субтитров" вперёд или назад на выбранную величину.
  - Возможность "Загрузить текст из файла", для исправления файла используя показатели времени из других субтитров.
- Операции с текстом
  - Поиск и Замена текста - "Целые слова", "Чувствительно к регистру" и "Сохранять регистр".
  - "Автовыравнивание" для укорачивания субтитров имеющих более трёх строк в две и подгонки длин.
  - "Изменение регистра" с шестью различными вариантами.
  - "Объединить строки" чтобы выбранные субтитры стали однострочными.
  - "Разделить субтитр" для лёгкого разбиения многострочного (или очень длинного) субтитра на две пропорциональные по времени части.
  - "Переворот текста" с сохранением или без порядка строк.
  - "Исправление знаков препинания", полезно для языков с порядком чтения справа налево.
  - "Удаление многоточий" уничтожает ненужные "...", если они присутствуют в конце строки одного и в начале строки следующего субтитра.
  - "Загрузить текст из файла", для исправления текста, используя текст других субтитров.
- Операции с текстом и временем
  - "Сортировка субтитров" для сортировки всех субтитров по их начальному времени.
  - "Объединение субтитров" создаёт на основе нескольких субтитров один (например, "- Привет!" и "- Эй!!!" станет текстом "- Привет!|- Эй!!!").
  - Визуальные эффекты над текстом и временем субтитров.
  - Возможность помечать/снимать пометку на субтитры для последующего возврата, и загружать файл отчёта (Subtitle Report Files - *.srf), который умеет создавать видеопроигрыватель ViPlay.

Текущий список поддерживаемых форматов:

- Adobe Encore DVD (*.txt)
- Advanced SubStation Alpha (*.ass)
- AQTitle (*.aqt)
- Captions 32 (*.txt)
- Captions DAT (*.dat)
- Captions DAT Text (*.dat)
- Captions Inc. (*.txt)
- Cheetah (*.asc)
- CPC-600 (*.txt)
- DKS Subtitle Format (*.dks)
- DVD Junior (*.txt)
- DVD Subtitle System (*.txt)
- DVDSubtitle (*.sub)
- FAB Subtitler (*.txt)
- IAuthor Script (*.txt)
- Inscriber CG (*.txt)
- JACOSub 2.7+ (*.jss; *.js)
- Karaoke Lyrics LRC (*.lrc)
- Karaoke Lyrics VKT (*.vkt)
- KoalaPlayer (*.txt) (один из вариантов TMPlayer)
- MAC DVD Studio Pro (*.txt)
- MacSUB (*.scr)
- MicroDVD (*.sub)
- MPlayer (*.mpl)
- MPlayer2 (*.mpl)
- MPSub (*.sub)
- OVR Script (*.ovr)
- Panimator (*.pan)
- Philips SVCD Designer (*.sub)
- Phoenix Japanimation Society (*.pjs)
- Pinnacle Impression (*.txt)
- PowerDivX (*.psb)
- PowerPixel (*.txt)
- QuickTime Text (*.txt)
- RealTime (*.rt)
- SAMI Captioning (*.smi)
- Sasami Script (*.s2k)
- SBT (*.sbt)
- Sofni (*.sub)
- Softitler RTF (*.rtf)
- SonicDVD Creator (*.sub)
- Sonic Scenarist (*.sst)
- Spruce DVDMaestro (*.son)
- Spruce Subtitle File (*.stl)
- Stream SubText Player (*.sst)
- Stream SubText Script (*.ssts)
- SubCreator 1.x (*.txt)
- SubRip (*.srt)
- SubSonic (*.sub)
- SubStation Alpha (*.ssa)
- SubViewer 1.0 (*.sub)
- SubViewer 2.0 (*.sub)
- TMPlayer (*.txt) (пять вариантов)
- Turbo Titler (*.txt)
- Ulead DVD Workshop 2.0 (*.txt)
- ViPlay Subtitle File (*.vsf)
- ZeroG (*.zeg)

### 1.2 Модуль чтения и записи

Модуль чтения и записи программы Subtitle Workshop значительно развился и был переписан "с нуля" несколько раз. Множество людей докладывали об ошибках, которые были устранены. Про прошествии времени модуль стал более надёжным и стабильным. Поэтому мы решили выпустить URUSoft Subtitle API.

##### 1.2.1 Что такое URUSoft Subtitle API?

Это динамическая библиотека (DLL), содержащая модуль чтения и записи для программы Subtitle Workshop. Эта DLL создана таким образом, что обновления в модуле чтения/записи Subtitle Workshop могут быть опубликованы без выпуска новой версии основной программы, библиотека содержит не только исправления ошибок, но и новые форматы субтитров. Благодаря DLL, вы можете скачать всего несколько десятков килобайт вместо 800, если будет обнаружена ошибка в модуле чтения/записи.
После скачивания DLL, нужно перейти в папку программы Subtitle Workshop и поместить eё в папку "SubtitleAPI". Когда в следующий раз вы запустите Subtitle Workshop, новые форматы/исправления начнут действовать.

### 1.3 Внешний вид

Если вам хочется увидеть картинку, сделайте щелчок мышью здесь.
Одна из черт, делающих Subtitle Workshop уникальной программой - это её интерфейс. Он дружественный к пользователю и в то же время объединяет основную и расширенную функциональность через лёгкий доступ к меню.
Интерфейс подходит для *любой* задачи - вы достигнете высокой производительности при создании субтитров, исправлении времени вручную, переводе, и конечно же, используя все остальные функции.

### 1.4 Начало работы

Рассмотрим основные возможности программы Subtitle Workshop.

##### 1.4.1 Загрузка файла субтитров

Чтобы загрузить субтитры - просто выберите из меню пункт "Файл/Загрузить субтитры" (File/Load Subtitle) или нажмите клавиши [Ctrl]+[O]. Вдобавок, если расширение субтитров привязано к программе, файл можно загрузить перетаскиванием файла в основное окно (drag&drop) или двойным щелчком на файле субтитров.
Каждый раз, когда вы пытаетесь загрузить файл одним из описанных методов, файл проверяется на пригодность, и определяется формат. Большинство файлов загружается корректно, но если вы получите сообщение "Файл содержит испорченые субтитры или неизвестный формат" ("The file is a bad subtitle or an unsupported format"), имеется возможность попытаться загрузить файл иначе. Если вы УВЕРЕНЫ что знаете формат файла, проделайте следующее:

1. Выберите "Файл/Загрузить субтитры".
2. Появится окошко для выбора файла, в выпадающем меню поменяйте "Все поддерживаемые файлы" (All supported formats) на нужный формат.
3. Нажмите кнопку Открыть (Open).

При таком выборе файла не будет применяться автоматическое определение формата и проверка файла. Если файл всё так же не может быть загружен, вы получите сообщение об ошибке. В таком случае, если вы уверены, что файл - это субтитры в текстовом файле, можете послать их автору и он добавит поддержку этого формата в программу.

##### 1.4.2 Загрузка видеофайла

Чтобы загрузить видеофайл, выберите из меню "Видео/Открыть" (Movie/Open) или нажмите клавиши [Ctrl]+[P]. Если появится сообщение "Неправильный видеофайл" ("File is not a valid video file"), убедитесь, что в системе установлены необходимые кодеки. В случае необходимости, можно скачать Coda Codec Pack, он устранит большинство проблем с проигрыванием видео.

##### 1.4.3 Создание нового файла

Используя Subtitle Workshop вы с лёгкостью можете создавать новые файлы, и затем сохранять их в любом формате. Для этого, выберите из меню "Файл/Новые субтитры" или нажмите клавиши [Ctrl]+[N]. После этого можно начать добавлять субтитры, и затем сохранить файл, выбрав из меню "Файл/Сохранить" (File/Save) или нажав клавиши [Ctrl]+[S].

##### 1.4.4 Добавление субтитров

Достаточно нажать клавишу Insert или выбрать из меню пункт "Редактор/Вставить субтитр" (Edit/Insert subtitle). Субтитр будет добавлен сразу после выбранного в списке. Продолжительность вставленного субтитра - одна секунда, начальное время - конечное время предыдущего субтитра плюс одна миллисекунда. Если вы добавляете субтитр в пустой список, начальное время будет равно нулю.
Для добавления субтитра перед выбранным, нажмите клавиши [Shift]+[Insert] , или выберите пункт меню "Редактор/Вставить перед" (Edit/Insert before).

##### 1.4.5 Удаление субтитров

Выберите субтитры, требующие удаления, нажав клавишу Ctrl и производя щелчки мышью. Затем нажмите клавишу Delete, или выберите из меню "Редактор/Удалить выбранное" (Edit/Remove selected).

##### 1.4.6 Редактирование субтитров вручную

Каждый субтитр состоит из трёх частей:

1. Начальное время - время, когда субтитр появляется на экране.
2. Конечное время - время, когда субтитр исчезает.
3. Текст - собственно текст субтитра.

Subtitle Workshop позволяет с лёгкостью редактировать любое из этих полей.
Для изменения начального времени выберите в главном окне поле "Показать" (Show), и установите требуемое время (или кадры), после чего нажмите [Enter].
Для изменения конечного времени выберите в главном окне поле "Спрятать" (Hide), и установите требуемое время (или кадры), после чего нажмите [Enter]. Обратите внимание, что конечное время можно редактировать, изменяя значение в поле "Длительность" (Duration).
К тому же, любое из этих полей можно изменять при помощи стрелок, расположенных правее каждого из них.
Для редактирования текста, выберите поле "Текст" (Text) и введите нужный текст. В списке субтитров символ "|" (pipe) показывает перевод строки.

##### 1.4.7 Стили и цвета

Во-первых, вы должны знать, что Subtitle Workshop поддерживает стили и цвета только для всего субтитра. Поэтому, если действительно нужно применить стили для части субтитра, вам понадобится другая программа - например, Блокнот (Notepad). Так как программа поддерживает изменение стиля для всего субтитра, вам нужно только обозначать начало, не заботясь о закрытии тэгов. Поддерживаемые тэги:

- <b> для жирного
- <i> для наклона
- <u> для подчёркивания
- <c:#RR GG BB> для цвета в стандарте HTML

Для добавления этих тэгов достаточно их написать. Вдобавок, вы можете сделать правый щелчок мышью на списке, и появится всплывающее меню, в котором можно будет выбрать применяемый к выбранным субтитрам тэг. Обратите внимание, что к каждому субтитру можно применять несколько тэгов (если они разные), т.е. субтитр может иметь одновременно 4 тэга.
ВНИМАНИЕ: Не все форматы субтитров поддерживают стили или цвета. Поэтому если вы попытаетесь сохранить субтитры в одном их этих форматов, все стили и цвета будут утеряны.

##### 1.4.8 FPS и начальные FPS

Осознание разницы между этими двумя понятиями очень важно для работы с Subtitle Workshop.
Начальные FPS - количество кадров в секунду (Frames Per Second), имеющее место быть в той версии фильма, к которой делались субтитры. FPS - количество кадров в секунду, которое имеет фильм, к которому необходимо подогнать субтитры. Чтобы сконвертировать субтитры, нужно изменить это значение. При редактировании субтитров, основанных на кадрах нет нужды заботиться о начальных FPS (нужны только FPS), т.е. значение в поле "Начальные FPS" не имеет значения, если в программу загружаются субтитры, основанные на кадрах (не будет влиять на время).
Q: Как сконвертировать субтитры, имеющие 25 FPS в субтитры, имеющие 29,97?
A: Просто установите "Начальные FPS" в значение 25, загрузите субтитры и установите "FPS" в 29,97. Таким образом вы измените частоту субтитров в файле.

### 1.5 Параметры командной строки

Параметры для Subtitle Workshop лучше всего посылать между " " , чтобы избежать проблем с пробелами в именах файлов и каталогов.
Чтобы открыть файл:
SubtitleWorkshop.exe "/OPEN(имя_файла)"
Пример:
SubtitleWorkshop.exe "/OPEN(C:\Subtitle.srt)"
Чтобы сконвертировать из одного формата в другой:
SubtitleWorkshop.exe "/CONVERT(начальный_файл/конечный_файл/конечный_формат/начальные_FPS/конечные_FPS)"
Начальные FPS и Конечные FPS необходимы только при работе с субтитрами, основанными на кадрах. Если это не так, можно использовать любое значение. Если значение FPS не целое число, десятичная точка определяется настройками в Панели управления Windows (Control panel). Обычно это "," или ".". Формат субтитров должен представлять собой строку. Если вы используете новую версию SubtitleAPI, можно использовать любой из поддержанных в данной версии библиотеки.
Чтобы узнать список поддерживаемых форматов и *точное* написание, вызовите Subtitle Workshop таким образом:
SubtitleWorkshop.exe /GetSupportedFormats
SubtitleWorkshop сохранит список поддерживаемых форматов в каталог, где установлена программа. Это текстовый файл с именем "SupportedFormats.txt".
Несколько примеров:
SubtitleWorkshop.exe "/CONVERT(C:\Folder\Sub.smi/C:\Subtitle.pjs/Phoenix Japanimation Society/25/29,97)"
SubtitleWorkshop.exe "/CONVERT(C:\Subtitle.vsf/C:\Subtitle.jss/JACOSub 2.7+/23,976/0)"
SubtitleWorkshop.exe "/CONVERT(C:\Subtitle.srt/C:\Subtitle.sub/MicroDVD/29,97/29,97)"
Для выбора задержки:
SubtitleWorkshop.exe "/DELAY(начальный_файл/конечный_файл/начальные_FPS/задержка_в_миллисекундах)"
Пример:
SubtitleWorkshop.exe "/DELAY(C:\Subtitle.srt/C:\Subtitle.srt/0/-5000)"
Такая команда установит задержку в -5 секунд для файла Subtitle.srt и пересохранит его. Так как работа идёт с субтитрами, основанными на времени, значение FPS установлено в 0. Так же как и при конвертировании файла в другой формат, десятичной точкой для FPS будет служить символ, настроенный в Панели управления Windows. Если вы выберете неправильный FPS, будет использовано значение по умолчанию - 25 кадров в секунду.

### 1.6 Файлы языков

Вы можете легко создать собственный файл языка, или обновить имеющийся и использовать его в программе Subtitle Workshop. Для этого вам нужно перевести файл English.lng (или любой другой с расширением .lng), после чего скопировать его в каталог Langs, с именем файла язык.lng. Например, Espaсol.lng, English.lng, Franзais.lng.
Внимание! *НЕ* переводите текст между "[ ]" и текст после знака % (например, "%s" или "%d"). Иначе файл языка будет повреждён!
Советы:

- Если язык, на который вы переводите, использует набор символов отличный от ANSI_CHARSET, не забудьте сменить его в разделе [General]. Обратитесь к файлу charsets.txt для информации о наборах символов.
- В сообщениях символ "|" (pipe) представляет возврат каретки.

Когда вы создадите и проверите файл языка, перешлите его автору, чтобы перевод мог распространяться вместе с программой. Имя переводчика показывается в окошке "О программе" ("About").

### 1.7 Свои форматы

Позволяет сохранять субтитры в формате, который не поддерживается программой Subtitle Workshop, или для создания своего формата, или для сохранения в виде текстового файла. Позволяет только сохранять файлы, т.е. если вы сохраните субтитры в формате, который Subtitle Workshop не может открыть, загрузка файла будет невозможна.
Чтобы сохранить субтитры в своём формате, загрузите их в программу, после чего выберите из меню "Файл/Сохранить как..." (File/Save as...) и щёлкните на кнопке "Свой формат" (Custom format).
Название
Позволяет опознать формат, когда вы сохраняете файл (или проект).
Расширение Расширение, используемое форматом. Subtitle Workshop будет его использовать при сохранении файла. Обратите внимание, что расширение должно быть в виде "*.СИМВОЛЫ".
Структура
Описывает структуру времени. h устанавливает часы (hours), m минуты (minutes), s секунды (seconds) и z миллисекунды (milliseconds). Если вы введёте больше чем одну "h" или "m" или "s" или "z", все "h" или "m" или "s" или "z" будут объединены. Вы не можете вписать что-то типа "h:m:h:,zmzs". Время "00:00:00,0" представляется как "hh:mm:ss,z" и время "0:00:00,000" как "h:mm:ss,zzz". Если вам нужны только миллисекунды, впишите просто "MS" вместо временной структуры.
Время или Кадры
Выберите "Время" (Time) если субтитры основаны на времени. Если субтитры основаны на кадрах, выберите "Кадры" (Frames), тогда вам не понадобится задавать структуру, потому что кадры - всегда просто число.
FPS
Выберите FPS (кадры в секунду) для субтитров, которые вы сохраняете. Если вы сохраняете субтитры, основанные на времени в другие субтитры, основанные на времени, вам не нужно трогать этот параметр.
Символ новой строки
Устанавливает символ(ы) для разделения строк в субтитре. Если вам нужно разделение строк как в формате SubRip (просто разделение строк, без использования специального символа), необходимо написать "[Enter]".
Загрузить проект
Щёлкните кнопку, чтобы загрузить ранее сохранённое описание своего формата (*.cfp).
Сохранить проект
Щёлкните кнопку, чтобы сохранить описание формата в файл с расширением *.cfp. Это сохранит всю информацию, видимую в окошке "Свои форматы" (Custom formats).
Текст скрипта своего формата
Информацию, которую Subtitle Workshop сохраняет в файл субтитров, можно разбить на три части, в таком порядке:

1. Часть, которая пишется один раз, в начале файла
2. Часть, которая повторяется для каждого субтитра
3. Часть, которая пишется один раз, в конце файла

Всё, что вам нужно - просто вписать эти три части в поле текста. Когда вы открываете "Свои форматы" (Custom formats), вы можете видеть закомментированный пример. Комментарии начинаются с "**" и заканчиваются "!*". Именно поэтому вы не сможете сохранить в файл субтитров символы "**" - они опознаются как комментарий. Если всё-таки нужно сохранить их в файл, впишите {asterisk} (будет сохранена одна звёздочка). Чтобы сохранить две, используйте "{asterisk}*" или "{asterisk}{asterisk}".
Сначала впишите первую часть (если она нужна). Затем начните вторую (повторяемую) часть при помощи {RepeatSub}.
Повторяемая часть
В ней есть четыре раздела.

1. Начальное время субтитра. Впишите {swStart}, и Subtitle Workshop заменит это на начальное время субтитра (или номер кадра). Можно также писать {swFrameStart} и программа заменит на кадр. Таким образом вы сможете сохранить время, например, в виде hh:mm:ss,zzz:FRAMES. Если нужно помещать нули до нужной длины, впишите {swFrameStart,DesiredTotalLength}. Это же можно сделать и с концом субтитра.
2. Конечное время субтитра. Впишите {swEnd} и Subtitle Workshop заменит это на конечное время субтитра (или номер кадра). Можно также писать {swFrameEnd}.
3. Текст субтитра. Впишите {swText} и Subtitle Workshop заменит это на текст субтитра, используя заданный символ новой строки.
4. Порядковый номер субтитра (как в формате SubRip). Впишите {SubCount}. Переменная содержит номер субтитра. В первом субтитре будет иметь значение "1", во втором "2", и т.д. Некоторые форматы (SonicDVD) требуют заполнения нулями, например, до длины 4. Для этого впишите {SubCount,DesiredTotalLength}, и Subtitle Workshop автоматически добавит нули.

Загляните в каталог "CEF Examples", там находится несколько примеров различных форматов.

## Глава 2: Возможности, связанные со временем

### 2.1 Изменение частоты

Смотрите в разделе FPS и начальные FPS.

### 2.2 Установка задержки

Subtitle Workshop может устанавливать положительную или отрицательную задержку, в кадрах или единицах времени. Задержка - это время или кадры (константа) показывающая разницу между точкой в фильме где должны начинаться субтитры, и где они на самом деле начинаются. Чтобы применить задержку, загрузите субтитры в программу, после чего выберите из меню пункт "Редактор/Время/Выбрать задержку..." (Edit/Timings/Set delay...) или нажмите клавиши [Ctrl]+[D]. Появится окошко с параметрами для задержки.
Если вы работаете с субтитрами, основанными на времени, задержку нужно вводить в миллисекундах, и если с субтитрами, основанными на кадрах, то в кадрах. Subtitle Workshop автоматически определяет необходимое. Есть возможность применять задержку как ко всем субтитрам, так и только к выбранным. Это очень полезно, когда только часть субтитров появляется на экране не вовремя (например, неправильно объединённые двухдисковые субтитры).

### 2.3 Выравнивание субтитров

Subtitle Workshop умеет синхронизировать субтитры под видео при помощи четырёх методов. Какой бы вы ни выбрали, сначала необходимо загрузить субтитры, которые вы хотите выровнять, и для методов 1, 2 и 4 необходимо также загрузить видео, под которое синхронизируются субтитры.

##### 2.2.1 Метод 1: первый и последний диалог

Этот метод достаточно точен, и рекомендуется в большинстве случаев. Когда субтитры и видео загружены, выполните следующее:

- Проиграйте видео, пока не услышите первую произнесённую фразу или первое место, которое отображено в субтитрах (например, имя режиссёра или название фильма) и когда вы увидите/услышите, возьмите текущее время на заметку (оно понадобится позднее).
- Перемотайте видео ближе к концу, и найдите место, где будет слышна/видна последняя фраза, требующая субтитров, и тоже возьмите на заметку текущее время.
- Обратите внимание, что для первых двух пунктов вы можете найти нужное время при помощи внешнего видеопроигрывателя.
- Когда эти шаги выполнены, выберите пункт меню "Редактор/Время/Выровнять субтитры..." (Edit/Timings/Adjust subtitles...) или нажмите клавиши [Ctrl]+[B]. Переключитесь в режим "Простой" (Simple). В поле "Первый текст" (First spoken line) впишите время первого субтитра, и в поле "Последний текст" (Last spoken line) время последнего субтитра. Затем нажмите кнопкуВыровнять! (Adjust!).

##### 2.2.2 Метод 2: синхронизация по двум точкам

Этот метод не так точен, как первый, но обычно даёт хорошие результаты. Использует две точки из видеофайла и две точки из субтитров, пересчитывая время по линейному алгоритму. Назовём первую пару точек как "Первые синхроточки" и вторую "Последние синхроточки". Каждая пара состоит из одной точки видео и одной точки субтитров, точка субтитров имеет ошибочное время, и точка видео имеет нужное время. После выбора первых и последних синхроточек Subtitle Workshop рассчитывает остальные самостоятельно. Чем ближе первые синхроточки будут к началу и последние к концу, тем большую точность вы получите. Запомните: если выбранная синхроточка в субтитрах является первым субтитром в файле, и последняя синхроточка является последним субтитром в файле, программа для синхронизации будет использовать первый метод (первый и последний диалог).
Если вы разобрались, проделайте следующее:

- Отметьте субтитр, который будет первой синхроточкой. Синхроточкой станет время начала субтитра.
- Проиграйте видео, пока не найдёте нужное время для данного субтитра (оно станет первой синхроточкой видео), затем щёлкните кнопку "Отметить первую синхроточку" (Mark as first sync point) или нажмите клавиши [Ctrl]+[1].
- Затем отметьте субтитр, который будет последней синхроточкой. Синхроточкой станет время начала субтитра.
- Проиграйте видео, пока не найдёте нужное время для данного субтитра (оно станет последней синхроточкой видео), щёлкните кнопку "Отметить последнюю синхроточку" (Mark as last sync point) или нажмите клавиши [Ctrl]+[2].

Когда это будет выполнено, появится запрос подтверждения. Щёлкните "Да" (Yes), и субтитры будут синхронизированы. Знайте, что этим методом можно синхронизировать часть субтитров (например, неправильно объединённые двухдисковые субтитры).

##### 2.2.3 Метод 3: выравнивание по синхронизированным субтитрам

Функция полезна, когда имеются рассинхронизированные субтитры на каком-либо языке и их необходимо выровнять по субтитрам на другом языке, которые уже синхронизированы под видео. Этот метод будет работать даже если файлы имеют разное количество субтитров, единственным требованием является то, что первый и последний субтитр в обоих файлах должны совпадать по тексту. Метод чрезвычайно прост: выберите из меню "Редактор/Время/Выровнять/По синхронизированным субтитрам" (Timings/Adjust to synchronized subtitles) или нажмите клавиши [Shift]+[Ctrl]+[B], и загрузите синхронизированный файл. Обратите внимание: этот метод НЕ то же самое, что и "загрузить время из файла".

##### 2.2.4 Метод 4: расширенное выравнивание субтитров

Используется в тех случаях, когда обычные методы по двум точкам не дают результата. Эта уникальная функция позволяет выравнивать субтитры в самом печальном случае, когда рассинхронизация субтитров непостоянна, или различна в разных частях файла субтитров. При помощи этой функции вы можете выбрать многочисленные точки субтитров/видео, чтобы произвести синхронизацию "по частям". Максимальное количество точек, которые можно выбрать - количество субтитров в файле.
Для начала загрузите файл субтитров и затем загрузите видео. Среди элементов управления в предварительном показе вы можете видеть кнопку "Добавить синхроточку субтитр/видео" (Add subtitle/video synchronization point). Кнопка понадобится чуть позднее. Нужно выполнить следующие шаги:

- Выделите субтитр, который вы хотите сделать синхроточкой. Будет использоваться начальное время субтитра. Выбрать можно любой субтитр в файле.
- Проиграйте видео, пока не встретите подходящее время для появления субтитра. Нажмите кнопку "Добавить синхроточку субтитр/видео" или клавиши [Ctrl]+[Alt]+[P]. Появится окно выравнивания субтитров в расширенном режиме. Окошко немодальное, что значит, что в то время, когда оно на экране, можно использовать основное окно Subtitle Workshop.
- Повторите два предыдущих шага для всех точек, которые вы решили использовать. К тому же, есть возможность "Добавить" (Add) синхроточку вручную, или "Добавить из медиа" (Add from media), чтобы добавить точку напрямую (работает так же, как кнопка в окне предварительного показа).

Очень важный момент, на который надо обратить внимание - использование "Если время находится вне синхроточек" (If time is outside the points scope). Ниже описаны возможные варианты:

- Экстраполировать. Subtitle Workshop будет использовать математические формулы для каждого субтитра в файле, даже если время субтитра не находится между синхроточками. Результат будет похож как во время выравнивания по двум точкам, но с получением большего количества точек.
- Не изменять время. Если время субтитра не находится между синхроточками, Subtitle Workshop вернёт значение времени без изменения. Полезно, если требуется выровнять субтитры с 100 по 200 и остальное оставить без изменения.
- Вернуть смещение соседней точки. Если время субтитра меньше чем время первой синхроточки, будет произведён расчёт времени по смещению первой синхроточки. Если время субтитра больше чем время последней синхроточки, будет произведён расчёт времени по смещению последней синхроточки. Иногда бывает полезно.

Когда произведены все настройки, нажмите кнопку Выровнять (Adjust!).

### 2.4 Время показа

Позволяет исправить время показа для всех субтитров в файле. Например, субтитры, показываемые на экране меньше чем 1 секунду, обычно трудно прочесть, если это не фразы типа "Да" или "Нет". Иногда в файлах присутствуют субтитры с большим количеством символов и с коротким временем показа, иногда со временем показа более чем 10 секунд. Для того, чтобы исправить эти субтитры, и предназначена данная функция программы. Вы можете устанавливать минимальное и максимальное время показа для субтитров. Время показа каждого субтитра, меньше чем заданный минимум будет увеличено (если это возможно без пересечения со следующим субтитром). Время показа каждого субтитра, которое больше чем заданный максимум, будет обрезано.
Чтобы установить время показа, выберите из меню "Редактор/Время/Время показа..." (Edit/Timings/Set duration limits...) или нажмите клавиши [Ctrl]+[L]. Когда нужные значения максимума и минимума в миллисекундах будут введены, нажмите кнопку Применить (Apply).

### 2.5 Увеличение/уменьшение времени

Увеличение/уменьшение времени - полезная функция в случае, когда субтитры содержат длинные строки и короткое время показа. Очень похожа на "Время показа", но более полезна, так как позволяет удлинить время показа отдельных субтитров на определённых условиях. Для увеличения или уменьшения времени выберите из меню пункт "Редактор/Время/Увеличение-уменьшение времени" (Edit/Timings/Time expander) или нажмите клавиши [Shift]+[Ctrl]+[Y].
Величина времени, на которую вы желаете удлинить или укоротить время показа, легко настраивается, и устанавливается в секундах (с точностью до одной миллисекунды) если вы работаете с субтитрами, основанными на времени, или в кадрах (с точностью до кадра) если вы работаете с субтитрами, основанными на кадрах. Увеличение/уменьшение времени можно проводить по выполнению определённых условий, например, если текст субтитра длиннее чем выбранное количество символов и/или если время показа меньше/больше чем заданное (зависит от того, что вы желаете - увеличить или уменьшить). Вдобавок, имеется возможность избегать пересечений субтитров при увеличении времени. Когда настройки сделаны, вы можете выбрать - применять изменения ко всем субтитрам, или только к выделенным. Для выполнения, щёлкните по кнопке Применить (Apply).

### 2.6 Загрузка времени из файла

Функция полезна, когда у вас есть файл, где текст субтитров правильный, а время ошибочно. Вдобавок у вас есть другой файл с таким же количеством субтитров, где время в порядке. Нужно загрузить файл с правильным текстом, после чего выбрать из меню "Редактор/Время/Загрузить время из файла" (Edit/Timings/Read timings from file) или нажать клавиши [Shift]+[Ctrl]+[T]. После этого необходимо выбрать файл, в котором присутствует правильные значения времени.

### 2.7 Увеличение длительности

"Увеличение длительности" работает только для выделенных субтитров, и не имеет действия над последним субтитром в файле. Функция увеличивает длительность выбранного субтитра таким образом, чтобы окончание его показа завершалось на одну миллисекунду раньше, чем начинался показ следующего субтитра. Чтобы увеличить длительность, отметьте нужный субтитр, после чего выберите из меню пункт "Редактор/Время/Увеличить длительность" (Edit/Timings/Extend length) или нажмите клавиши [Shift]+[Ctrl]+[E].

### 2.8 Автоматическая длительность

Полезная функция, когда файл субтитров содержит много (или несколько) субтитров с неправильным временем показа. Указав требуемое время на символ, слово и строку (значения по умолчанию должны подходить), вы сможете при помощи Subtitle Workshop рассчитать требуемую длительность для субтитров. Вторым применением данной функции служит установка времени окончания показа субтитра при ручном титровании видео, для ускорения работы, когда пользователь вручную проставляет только время начала показа субтитра, а Subtitle Workshop рассчитывает время окончания показа. Чтобы вызвать "Автоматическую длительность", выберите из меню "Редактор/Время/Автоматическая длительность" (Edit/Timings/Automatic durations) или нажмите клавиши [Shift]+[Ctrl]+[R]. Изменение времени можно задать только если новая длительность больше чем у оригинала, если она меньше чем у оригинала, или в любом случае. Команду можно применять как ко всем субтитрам, так и только к выделенным.
Используя функцию совместно с Время показа и Искать слишком большую/маленькую длительность из окна Информации и ошибок, можно достигнуть великолепных результатов за короткое время.

### 2.9 Сдвиг субтитров

Увеличивает или уменьшает начальное время показа субтитров без изменения длительности. Очень удобная функция для синхронизирования субтитров под видео. Чтобы сдвинуть выделенные субтитры вперёд, выберите из меню "Редактор/Время/Сдвинуть на +X миллисекунд" (Edit/Timings/Shift +X milliseconds) или нажмите клавиши [Shift]+[Ctrl]+[H]. Чтобы сдвинуть выделенные субтитры назад, выберите из меню "Редактор/Время/Сдвинуть на -X миллисекунд" (Edit/Timings/Shift -X milliseconds) или нажмите клавиши [Shift]+[Ctrl]+[N].

## Глава 3: Возможности, связанные с текстом и субтитрами

Subtitle Workshop не просто обычный редактор субтитров - он умеет производить различные операции над текстом, чтобы облегчить ваш труд.

### 3.1 Выравнивание строк

Выравнивание строк полезно для файлов, которые содержат множество многострочных субтитров (количество строк больше двух), или если субтитры неудачно разбиты на строки. Функция разбивает текст субтитра, чтобы он имел одну или максимум две строки (в зависимости от длины). Умеет работать с нахождением знака "-". Количество символов в строке, после которого она будет разбита на две части, можно настраивать в разделе "Настройки/Основные/Дополнительно" (Settings/General/Advanced) в поле с названием "Две строки, если длиннее чем" (Two lines if longer than).
Чтобы применить выравнивание к субтитру, выделите его и выберите из меню "Редактор/Тексты/Автовыравнивание" (Edit/Texts/Smart line adjust) или нажмите клавиши [Ctrl]+[E]. Выравнивание строк работает для всех выделенных субтитров, их количество может быть больше одного. Если вы работаете в режиме перевода, функция будет работать над текстами оригинала и перевода.
Обратите внимание, что выравнивание строк не идеально, и иногда может давать неподходящие результаты. Функция была разработана для того, чтобы немного помогать при выравнивании строк вручную. Может работать абсолютно неправильно, если некоторые слова содержат знак "-". В случае, когда функция применяется ко всему файлу субтитров, желательно после её выполнения проверить результаты полным прочтением файла.

### 3.2 Изменение регистра

Вам когда-нибудь попадались субтитры, тексты которых полностью в верхнем регистре? Или наоборот, в нижнем? Тогда функция "Изменить регистр" - для вас. Чтобы сменить регистр, выберите из меню "Редактор/Тексты/Изменить регистр..." (Edit/Texts/Convert case...) или нажмите клавиши [Shift]+[Ctrl]+[C]. Вам будет предоставлен выбор из пяти возможных преобразований:

1. "Предложение" (Sentence type) преобразует в верхний регистр только первые буквы предложений. Превращает фразу "ПРИВЕТ!, знаешЬ, эТО ЗДОРОво. но не ДЛЯ меНя." в "Привет!, знаешь, это здорово. Но не для меня.".
   Когда включено "обнаружение "..."" ("..." detection), идёт проверка - были ли последние три символа предыдущего субтитра многоточием ("..."), и если это так, первый символ нового субтитра не переводится в верхний регистр (программа считает новый субтитр продолжением предыдущего). Если выбрано "Первая буква первого слова" (Only first letter of first word), Subtitle Workshop будет переводить в верхний регистр только первую букву предложения, а остальные слова оставлять так, как они есть.
2. "Нижний регистр" (Lowercase) переводит в нижний регистр весь текст. Превращает фразу "ПРИВЕТ!, знаешЬ, эТО ЗДОРОво. но не ДЛЯ меНя." в "привет!, знаешь, это здорово. но не для меня."
3. "Верхний регистр" (Uppercase) переводит в верхний регистр весь текст. Превращает фразу "ПРИВЕТ!, знаешЬ, эТО ЗДОРОво. но не ДЛЯ меНя." в "ПРИВЕТ!, ЗНАЕШЬ, ЭТО ЗДОРОВО. НО НЕ ДЛЯ МЕНЯ."
4. "Заглавные буквы" (Title type) переводит в верхний регистр только первую букву каждого слова. Превращает фразу "ПРИВЕТ!, знаешЬ, эТО ЗДОРОво. но не ДЛЯ меНя." в "Привет!, Знаешь, Это Здорово. Но Не Для Меня."
5. "Режим инверсии" (Inverse type) переводит символы верхнего регистра в нижний и наоборот. Превращает фразу "ПРИВЕТ!, знаешЬ, эТО ЗДОРОво. но не ДЛЯ меНя." в "привет!, ЗНАЕШь, Это здороВО. НО НЕ для МЕнЯ."

Если вы работаете в режиме перевода, изменение регистра имеет действие только над оригинальным текстом. Если нужно преобразовать текст перевода, использойте функцию "Обменять" ("Swap").

### 3.3 Объединение строк

Функция превращает все выделенные субтитры в однострочные. При работе в режиме перевода преобразует как оригинал, так и перевод.

### 3.4 Разделить субтитр

Разделяет субтитр на два. Очень полезная функция, если файл содержит множество многострочных субтитров (например, по четыре строки), и общая их длина слишком велика, чтобы они могли быть помещены в две строки при помощи "Выравнивания строк". Разделение субтитра на два вручную возможно, но очень трудоёмко, потому что после вставки пустого субтитра вам потребуется установить значения времени и скопировать часть текста из первоначального субтитра в новый. Функция "Разделить субтитр" позволяет сделать всё это очень быстро и удобно.
Выделите субтитр, который необходимо разделить, и выберите из меню "Редактор/Тексты/Разделить субтитр..." (Edit/Texts/Divide lines...) или нажмите клавиши [Shift]+[Ctrl]+[D]. Появится окошко "Разделение субтитра". Обратите внимание, что если выбранный субтитр имеет только одну строку, которая короче чем установленное значение "Разбить строку после" в разделе Настройки/Дополнительно, пункт меню и горячая клавиша будут недоступны.
В окне вы увидите два поля для текста, верхнее для текста первого субтитра, и нижнее для второго. Нужно выбрать, после какой строки производить разделение на две части, в большинстве случаев предложенное значение сразу подойдёт. Если субтитр имеет всего две строки, выбор будет недоступен. При смене значения этого параметра оба текстовых поля будут обновлены. Чтобы отключить автоматическое выравнивание, в разделе Настройки/Дополнительно имеется галочка "Автовыравнивание строк" (Smart line adjust automatically). Когда галочка установлена, программа после разделения текста на две части проводит автоматичекское выравнивание строк. Чтобы сделать это вручную, перейдите на нужное текстовое поле, и нажмите клавиши [Ctrl]+[E].
Теперь рассмотрим время показа субтитров. В большинстве случаев второй субтитр будет показываться сразу за первым, и поэтому лучше оставлять галочку "Продолжать сразу" (Continue directly). Если же второй субтитр должен следовать за первым после некоторой паузы, галочку необходимо снять и вписать начальное время второго субтитра вручную. Для установки времени вы можете использовать кнопки для разделения времени между субтитрами в нужной пропорции. "1:1" означает одинаковое время для обоих субтитров, "2:1" означает, что первый субтитр будет показываться в два раза дольше, и так далее. Кнопки полезны, когда прикинув на глаз длины субтитров, вы решитесь разделить их в нужной пропорции. Так, если первый субтитр имеет длину текста 60 символов, а второй - 20 символов, вам потребуется кнопка "3:1". Subtitle Workshop умеет рассчитывать значения длительности для новых субтитров, нужно лишь установить галочку Автоматическая длительность (Use automatic duration).
Для выполнения нажмите кнопку "Разделить!" (Divide!). Во время разделения субтитра в режиме перевода в текст перевода программа добавляет пустой субтитр, и не разделяет субтитр перевода.

### 3.5 Установка максимальной длины строки

Разбивает субтитр на строки, с длиной меньше чем установленный максимум. Это значение можно выбрать в разделе Настройки/Дополнительно. Функция преобразует все выделенные субтитры. Когда работа идёт в режиме перевода, изменениям подвергаются и оригинал и перевод.
Пример (Максимальная длина установлена в 45 символов):
"Это очень длинная строка текста, на которой мы попытаемся объяснить работу функции, разделяющей текст на строки."
Превратится в:
"Это очень длинная строка текста, на которой
мы попытаемся объяснить работу функции,
разделяющей текст на строки."
Строки получили длину 43, 39 и 28 символов. Как можно видеть, ни одна строка не превышает установленный максимум.
Полученный текст не всегда хорошо читается на экране, поэтому функцию лучше использовать в паре с "Разделить субтитр".

### 3.6 Загрузка текста из файла

Похожа на функцию "Загрузка времени из файла", но вместо времени загружает текст.

### 3.7 Объединение субтитров

Очень полезна, когда необходимо несколько субтитров объединить в один. Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | - Почему бы тебе не попробовать?
00:00:02,001 | 00:00:03,000 | - Не знаю!

Превратится в:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:03,000 | - Почему бы тебе не попробовать? - Не знаю!

Конечным временем объединённого субтитра станет время последнего выделенного субтитра.
Чтобы объединить два или более субтитров, выделите их и нажмите клавиши [Ctrl]+[K] или выберите из меню "Редактор/Субтитры/Объединить субтитры" (Edit/Subtitles/Combine subtitles).

### 3.8 Переворот текста

Функции для языков, использующих чтение справа налево, таких как еврейский или арабский.

##### 3.8.1 Переворот текста

Переворачивает текст во всех выделенных субтитрах. Пример:
"Переверните этот текст!" превратится в "!тскет тотэ етинревереП".
При работе в режиме перевода, преобразует только текст оригинала. Чтобы преобразовать текст перевода, используйте функцию "Обменять".
Вы можете выбрать, оставлять ли порядок строк, для этого перейдите в раздел Настройки/Основные и поменяйте галочку "Сохранять порядок строк при перевороте текста" (Keep order of lines when reverse text).
Для переворота текста выделите нужные субтитры и нажмите клавиши [Ctrl]+[H] или выберите из меню "Редактор/Субтитры/Переворот текста/Перевернуть текст" (Edit/Subtitles/Right to left/Reverse text).

##### 3.8.2 Исправление знаков препинания

Исправляет знаки препинания для языков, использующих чтение справа налево. Пример:
"Исправить знаки препинания!..." превратится в "...!Исправить знаки препинания".
В режиме перевода преобразует только текст перевода. Чтобы преобразовать оригинал, используйте функцию "Обменять" или выйдите из режима перевода.
Чтобы исправить знаки препинания, выделите нужные субтитры и нажмите клавиши [Shift]+[Ctrl]+[F] или выберите из меню пункт "Редактор/Субтитры/Переворот текста/Исправить знаки препинания" (Edit/Subtitles/Right to left/Fix punctuation).

### 3.9 Сортировка

Сортирует субтитры по их начальному времени. Нажмите клавиши [Ctrl]+[Y] или выберите из меню "Редактор/Субтитры/Сортировка" (Edit/Subtitles/Sort).

### 3.10 Удаление многоточий

Удаляет "..." когда они расположены в конце субтитра и в начале следующего субтитра. Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Этот текст для того...
00:00:02,001 | 00:00:03,000 | ...чтобы объяснить функцию.

Превратится в:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Этот текст для того
00:00:02,001 | 00:00:03,000 | чтобы объяснить функцию.

Некоторым людям нравятся точки, некоторым нет. Чтобы удалить ненужные многоточия, нажмите клавиши [Shift]+[Ctrl]+[G] или выберите из меню "Редактор/Субтитры/Удалить многоточия" (Edit/Subtitles/Delete unnecessary links). Преобразуются все субтитры в файле.

### 3.11 Поиск и Замена

Функции Поиска и Замены в Subtitle Workshop очень быстрые и имеют расширенные настройки, которые можно сделать, нажав кнопку "Больше >". Подробнее о настройках:
Чувствительно к регистру (Case sensitive)
Производит поиск/замену учитывая ВЕРХНИЙ и нижний регистр символов.
Целые слова (Match whole words)
Находит текст, только если он формирует слово.
Сохранять регистр при замене (Preserve case on replace)
Копирует регистр начального текста при замене. Например, нужно найти текст "МЕЛ" и заменить его на "КОТ", Subtitle Workshop находит "Мел" и заменяет его на "Кот", а не на "КОТ".
Текст для поиска или замены может содержать перевод строки, т.е. быть многострочным. Символ "|" (pipe) представляет новую строку. Если вы хотите найти один символ "|" впишите "||" (два символа).

### 3.12 Помеченные субтитры

Если во время перевода файла вам потребуется пометить некоторые субтитры, потому что вы не уверены насчёт точности перевода, то это можно сделать, выделив нужные и выбрав из меню "Редактор/Субтитры/Пометить выделенные субтитры" (Edit/Subtitles/Mark selected subtitles) или нажав клавиши [Shift]+[Ctrl]+[M]. Снять пометку можно при помощи "Редактор/Субтитры/Убрать пометки с выделенных" (Edit/Subtitles/Unmark selected subtitles), или нажав клавиши [Shift]+[Ctrl]+[A].
Эта функция программы умеет работать совместно с видеопроигрывателем ViPlay.
Во время просмотра видео в программе ViPlay имеется возможность помечать субтитр, показываемый на экране (или последний, который был показан). Это можно делать, когда вы увидите ошибочный субтитр (опечатка, слишком долгое время показа, многострочный, или что-то ещё) и нажмёте клавишу "M". Когда видео закончится, ViPlay спросит вас о желании создать файл отчёта (Subtitle Report File - *.srf). Этот файл можно затем загрузить в Subtitle Workshop, и субтитры, которые были помечены в ViPlay автоматически будут помечены в Subtitle Workshop - это позволит быстро найти ошибочные места, и исправить.

## Глава 4: Настройки

Здесь мы рассмотрим, что можно изменить в Настройках.

### 4.1 Основные

Всегда наверху (Always on top)
Если галочка установлена, окно Subtitle Workshop будет всегда поверх других окон.
Разрешить работу более чем одной копии (Allow more than one instance running)
Разрешает или запрещает работу нескольких копий программы. Если галочка снята, и вы открываете файлы через Проводника (Explorer), они будут открываться в одном и том же окне, и если галочка стоит, будут открываться новые окна.
Подтверждать удаление субтитров (Confirm when deleting subtitles)
При установленной галочке каждый раз, когда вы попытаетесь удалить один или несколько субтитров, Subtitle Workshop будет запрашивать подтверждения на удаление.
Считать неправильные файлы текстом (Interpret invalid files as plain text)
Установите эту галочку, и у вас никогда не появится сообщение "Файл с неправильными субтитрами или неподдержанный формат." Взамен этого файл будет зачитан (без простановки времени) как обычный текст. После этого вам потребуется вписать время самостоятельно.
Автоматический поиск видео (Autosearch for movie)
Каждый раз, когда вы будете загружать субтитры в Subtitle Workshop, программа будет искать соответствующее субтитрам видео и если оно будет найдено, то загружать его. Функция умеет правильно находить имя файла (если оно разделено на несколько частей при помощи ".").
Пример: если субтитры имеют название "Spiderman.English.srt" и в том же каталоге присутствует фильм "Spiderman.avi", программа его загрузит.
Работа в режиме времени (Force working in time mode)
Если галочка снята, каждый раз, когда вы загружаете субтитры, основанные на кадрах, Subtitle Workshop автоматически переключается в режим кадров. Если галочка установлена, программа будет работать в режиме времени, и в режим кадров можно переключиться вручную.
Сохранять порядок строк при перевороте текста (Keep order of lines when reverse text)
Полезно при работе с языками, использующими чтение справа налево, такими как еврейский или арабский. Показывает, нужно сохранять порядок строк при использовании функции "Переворот текста" (клавиши [Ctrl]+[H] или пунтк меню "Редактор/Субтитры/Переворот текста/Перевернуть текст") или каждую строку переворачивать отдельно.
Выделить текст при нажатии [Shift]+[Enter] (Select text after pressing [Shift]+[Enter])
Позволяет выделять текст в поле "Текст" или "Перевод" после перехода к следующей строке при нажатии клавиш [Shift]+[Enter].
Выделить текст при нажатии [Ctrl]+[Enter] (Select text after pressing [Ctrl]+[Enter])
Позволяет выделять текст в поле "Текст" или "Перевод" после перехода к предыдущей строке при нажатии клавиш [Ctrl]+[Enter].
Не обрабатывать тэги (No interaction with tags)
Если эта галочка установклена, Subtitle Workshop будет игнорировать тэги при чтении файла. Т.е. не будет удалять их из текста субтитра. Функция полезна, если требуется полная поддержка тэгов (например, когда тэг применяется только к части субтитра), возможность, которую Subtitle Workshop в данной версии не поддерживает.
Работа с тэгами (Work with style tags)
Позволяет программе работать с тэгами стилей и цветов. Количество форматов субтитров, поддерживающих цвет и стили зависит от текущей версии библиотеки Subtitle API. Галочка не имеет эффекта, если установлена "Не обрабатывать тэги".
Лимит свежих файлов (Recent files limit)
Количество недавно загруженных в программу файлов, которое запоминается в главном меню программы. Если вам не нужен список свежих файлов, установите значение в 0. Максимальное значение 20.

##### 4.1.1 Дополнительно

Две строки, если длиннее чем (Two lines if longer than)
Используется функцией Выравнивание строк, здесь можно установить количество символов, после которого строка разбивается на две.
Вторая точка разрыва
Переключает на вторую возможную точку разрыва (первый пробел перед выбранной длиной, или первый пробел после выбранной длины строки).
Разбить строку после (Break line after)
Используется функцией "Разделить субтитр" для субтитров, имеющих всего одну, но длинную строку. Значение используется для разбивки длинной строки на серию более коротких, максимальная длина каждой из них описывается в "Разбить строку после".
Автовыравнивание строк (Smart line adjust automatically)
Указывает, нужно ли проводить выравнивание строк в окне "Разделить субтитр".
Сдвинуть время (Shift time)
Время, на которое будут сдвигаться субтитры вперёд/назад при помощи функции Сдвиг субтитров (shift subtitles).

##### 4.1.2 Символы

Показывать в основном окне (Show in main form)
Полезно для людей, использующих несколько языков с разным алфавитом. Показывает "Символы оригинала" и "Символы перевода" в основном окне, для того, чтобы их можно было быстро сменить.
Символы оригинала (Original charset)
Позволяет сменить набор символов, отображаемых в колонке "Текст".
Символы перевода (Translation charset)
Позволяет сменить набор символов, отображаемых в колонке "Перевод". Используется только при работе в режиме перевода.

### 4.2 Форматы

Формат по умолчанию (Default format)
Позволяет выбрать формат по умолчанию, который используется во многих окнах (например, Объединить субтитры, Разрезать субтитры, и т.д.).
Форматы для показа в "Сохранить как" (Formats to show when "Save as")
Полезная функция, когда вы используете всего несколько форматов субтитров и не желаете терять время, выискивая нужный в списке, содержащем более чем 40 названий. Только отмеченные форматы будут показываться в окне "Сохранить как".
Показать свои форматы (Show custom formats)
Указывает, нужно ли показывать форматы, помещённые в каталоге "CustomFormats" в окне "Сохранить как".

### 4.3 Типы файлов

Регистрировать расширения при старте (Register extensions on start)
Позволяет привязать выбранные расширения к программе, во время запуска Subtitle Workshop.
Привязать к основным расширениям субтитров (Associate with most supported subtitle extensions)
Когда возле расширения стоит галочка, то при двойном щелчке на файле с таким расширением файл будет автоматически загружен. Иконкой файла станет иконка Subtitle Workshop.
Список расширений файлов (List of file extensions)
Типы файлов, открываемых программой Subtitle Workshop при двойном щелчке на файле.

### 4.4 Сохранить

Спрашивать о сохранении субтитров (Ask to save on exit program/close subtitle)
Subtitle Workshop будет показывать сообщение "Файл изменён. Желаете сохранить изменения?" когда вы попытаетесь после изменения субтитров выйти из программы или закрыть субтитры. Если галочка "Разрешить работу более чем одной копии" снята, и вы попытаетесь загузить файл через Проводник, и в программе уже есть загруженные субтитры, сообщение тоже будет показано.
Сохранять автоматически каждые (Save work automatically every X minutes)
Subtitle Workshop будет незаметно сохранять изменённые субтитры с определённым в минутах интервалом.
Сохранять резервную копию
Сохраняет резервную копию оригинала/перевода (ИмяФайла.расширение.bak) вместо перезаписи поверх файла оригинала/перевода.

### 4.5 Предварительный показ

Всё описанное здесь будет работать, только если программа находится в режиме предварительного показа видео. Двойной щелчок и Shift+двойной щелчок на субтитре (Double click and shift-double click in a subtitle)
У вас есть возможность выбрать, что будет происходить, когда вы делаете двойной щелчок мышью или двойной щелчок с нажатой клавишей [Shift] на каком-либо субтитре. Есть три возможных варианта:

1. Показывать текст (Focus text box) перейдёт к полю "Текст", или, если программа в режиме перевода, к полю "Перевод".
2. Перейти на время субтитра (Go to subtitles time in video) перемотает видеофайл точно на начальное время субтитра.
3. Перейти на N секунд до субтитра (Go N seconds before subtitle in video) перемотает видеофайл на "Количество секунд" (Seconds to jump) раньше, чем начальное время субтитра.

Время при перемотке (Rewind and forward times)
Время при перемотке назад/вперёд, во время нажатия кнопок "Назад" или "Вперёд" на панели управления видео.
Скорость вывода по умолчанию (Default altered playback rate)
Значение скорости в процентах, на которой будет проигрываться видео при нажатии кнопки "Изменить скорость вывода" (Alter playback rate) на панели управления видео.

##### 4.5.1 Субтитры

Прозрачный фон (Try transparent background)
Позволяет субтитрам быть прозрачными. Работает в большинстве случаев, но если у вас возникнут проблемы, попробуйте нижеследующее:
Использовать регионы (может быть медленно) (Force using regions (may be slow))
Если галочка установлена, субтитры станут прозрачными, и при этом способе будет работать всегда. Используйте только если первым способом не удаётся получить прозрачные субтитры. При установленной галочке текст субтитров не может быть цвета FUCHSIA (#FF00FF).
Оставшиеся настройки не требуют объяснения, всё что вы поменяете, сразу применяется к тексту "ПРИМЕР" (SAMPLE).

### 4.6 Внешний показ

Позволяет выполнять предварительный показ субтитров в вашем любимом видеопроигрывателе.

##### 4.6.1 Основные

Внешний проигрыватель (Exe of the video player)
Место, где расположен файл видеопроигрывателя, который вы желаете использовать для внешнего показа субтитров. Помните, что видеопроигрыватель должен поддерживать командную строку и внешние субтитры.
Найти связанную программу (Detect associated program)
Нажмите эту кнопку, если вы хотите найти программу, привязанную к показу файлов типа .AVI, и вы не хотите вручную искать файл.
Каждый раз запрашивать видеофайл (Ask for a different video each time)
Subtitle Workshop будет каждый раз запрашивать имя видеофайла, когда вы попытаетесь выполнить внешний показ.
Всегда проверять с видео (Always test with same video)
Subtitle Workshop всегда будет использовать один и тот же видеофайл для внешнего показа, и не будет запрашивать имя файла, а сразу запустит видеопроигрыватель.

##### 4.6.2 Дополнительно

Сохранять временные субтитры в формате оригинала (Save temporary file in original format)
Выберите, если вы уверены, что видеопроигрыватель поддерживает используемый формат.
Сохранять временные субтитры в другом формате (Save temporary file in custom format)
Если видеопроигрыватель не умеет поддерживать формат субтитров, в котором сохранён начальный файл, но умеет открывать хотя бы один из поддержанных в Subtitle Workshop форматов, установите галочку и выберите нужный из списка.
Параметры для проигрывателя (Parameter to send the video player)
Это очень важно. Здесь нужно выбрать, как передать внешнему видеопроигрывателю, какие субтитры и какой видеофайл загрузить. VIDEO_FILE устанавливает видеофайл и SUBT_FILE файл субтитров. Внимательно прочтите файл помощи видеопроигрывателя, чтобы разобраться с параметрами командной строки.
Более подробно читайте в главе Внешний показ.

### 4.7 Внешний вид

##### 4.7.1 Программа

Шрифт, используемый программой (Font to use in the program & font size)
Если его поменять, шрифт программы и/или его размер во всей программе будет изменён. Меняйте его, если у вас будут проблемы с отображением вашего языка, или вам не нравится шрифт, установленный по умолчанию.
Выравнивание полей "Текст" и "Перевод" ("Text" and "Translation" fields align)
Выберите вариант выравнивания текста для этих двух полей.

##### 4.7.2 Список

Показывать сетку (Show grid lines)
Нужно ли показывать линии между рядами и столбцами в списке субтитров главного окна.
Применять стили к субтитрам (Apply style to subtitles)
Работает, если субтитры содержат тэги (жирные, наклонные, подчёркнутые или цвет). Если галочка установлена, Subtitle Workshop будет показывать субтитры в списке, используя соответствующий стиль/цвет.
Помечать непереведённые субтитры цветом (Mark untranslated subtitles with color)
Показывает непереведённые субтитры выбранным цветом, чтобы их можно было быстрее обнаружить.
Показывать горизонтальную прокрутку (Show horizontal scroll bar)
Уберите эту галочку, и вы никогда не увидите горизонтальную прокрутку в главном окне.

##### 4.7.3 Меню

Использовать меню Office XP (Use Office XP style menu)
Использует собственные процедуры для отображения главного меню. Если галочка снята, используются стандартные меню Windows.
Использовать градиент меню (Use gradient menu)
Показывает градиент (плавный переход цвета) в левой части меню.

## Глава 5: Инструменты

Функции, которые должна иметь любая программа для обработки субтитров.

### 5.1 Орфография

Проверка орфографии использует возможности Microsoft Word, при помощи подсоединения через OLE. Поэтому, требуется как минимум Microsoft Office 97 с установленным Word. Чтобы проверить орфографию, загрузите субтитры и нажмите клавишу F7 или выберите из меню пункт "Инструменты/Орфография" (Tools/Spell check). Все ошибки и возможные замены будут показываться при помощи окон Word. Проверка орфографии должна поддерживать любой из установленных словарей.
Внимание: эта функция иногда выдаёт сообщение об ошибках (TOleExeption), но это не вина Subtitle Workshop, а вина Word. В любом случае, обычно проверка орфографии работает прекрасно.

### 5.2 Массовая конвертация

Функция позволяет сконвертировать большое количество субтитров из любых форматов в необходимый формат, и сохранить результаты в отдельном каталоге всего за несколько щелчков мышью.
Выберите из меню "Инструменты/Массовая конвертация..." (Tools/Batch convert...) или нажмите клавиши [Ctrl]+[M]. Затем нужно выполнить следующие шаги:

1. Выберите расширения субтитров по которым будет производиться поиск, все возможные варианты представлены слева.
2. Выберите путь для поиска (каталог, в котором находятся субтитры, требующие конвертирования)
3. Если вы хотите включить в поиск подкаталоги, установите галочку "Включая подкаталоги" (Include subfolders).
4. Если нужно, чтобы Subtitle Workshop проводил подробную проверку формата файла, установите "Проверка формата" (Exhaustive format check). Если галочка снята, Subtitle Workshop делает только простое распознавание формата и проверку целостности. Простое распознавание работает обычно неплохо, и даёт неплохую скорость. Но если необходимо провести проверку файла с эффективностью 100%, используйте подробную проверку. Подробная проверка более медленная чем простая.
5. Выберите каталог для вывода (место, куда будут сохраняться сконвертированные файлы).
6. Выберите желаемый формат.
7. Выберите FPS по умолчанию (количество кадров в секунду) для файлов, основанных на кадрах (если они есть).
8. Нажмите кнопку "Вперёд".

После нажатия кнопки, Subtitle Workshop произведёт поиск подходящих файлов с субтитрами.
Когда поиск будет завершён, вы увидите список всех обнаруженных файлов, их формат, FPS (для субтитров, основанных на кадрах будет установлено выбранное значение по умолчанию) и размер (в килобайтах).
Вы имеете возможность добавлять новые файлы к списку, или удалять из списка. Также есть возможность сменить FPS для субтитров, основанных на кадрах (это можно сделать для нескольких файлов одновременно), выделив нужное и сменив значение в выпадающем списке.
Когда настройки сделаны, нажмите кнопку Обработка (Convert), и начнётся конвертирование файлов. Когда оно будет завершено, Subtitle Workshop создаст лог-файл (*.log), сообщая все возможные ошибки и удачные операции.

### 5.3 Разрезание субтитров

Имеется две возможности:

1. Простое - разрезает файл с субтитрами на две части
2. Подробное - разрезает файл с субтитрами на любое количество частей

Используйте тот вариант, который вам больше подходит.
Простое разрезание (Simple split)
Выберите место, где вы хотите разрезать файл, имеется 5 возможностей:

1. Разрезать от выбранного субтитра (Split in selected item)
   Файл субтитров будет разрезан сразу после выделенного в главном окне субтитра.
2. Разрезать от субтитра номер (Split in item number)
   Файл субтитров будет разрезан после заданного субтитра.
3. Разрезать от времени (Split in given time)
   Файл субтитров будет разрезан перед тем субтитром, начальное время которого больше чем заданное время.
4. Разрезать от кадра (Split in given frame)
   Файл субтитров будет разрезан перед тем субтитром, начальный кадр которого больше чем заданный кадр.
5. Разрезать от конца видео (Split in end of video)
   Файл субтитров будет разрезан перед тем субтитром, начальное время которого больше чем время, в которое заканчивается видеофайл (длительность видео).

После выбора места, где будет произведено разрезание, выберите имена файлов (без расширения, оно будет добавлено автоматически), требуемый формат и нажмите кнопку Разрезать (Split).
Подробное разрезание (Advanced split)
Перейдите на страницу "Подробное" (Advanced), и выберите количество частей, которое вы хотите получить. Затем выберите, желаете ли вы получить части равные по времени (длине), равные по количеству субтитров, или вы желаете разрезать субтитры по концу нескольких видеофайлов.
Если нужно разрезать субтитры по концу нескольких видеофалов, вам потребуется выбрать для каждой части соответствующий ей видеофайл. Для этого по очереди сделайте двойной щелчок на каждой части, начиная с первой. Для последней части не нужно выбирать видеофайл, так как её время будет найдено автоматически.
Установите галочку "Автоматические имена частей" (Auto-name the parts), если вы хотите, чтобы программа сама давала имена получаемым файлам. Если же вы хотите сделать это вручную, снимите галочку, выделите нужную часть и нажмите клавишу F2, чтобы вписать требуемое имя файла.
Установите "Пересчитать время" (Recalculate time values), если нужно, чтобы Subtitle Workshop автоматически установил начальное время для файлов, и вам не потребовалось делать это позднее вручную. В завершение, выберите каталог для вывода, требуемый формат субтитров и нажмите кнопку Разрезать (Split).

### 5.4 Объединение субтитров

При помощи Subtitle Workshop вы можете объединить более двух файлов, и субтитры могут быть в разных форматах, основанные на времени или кадрах, и если основаны на кадрах, могут иметь различное значение FPS (количество кадров в секунду)!
Выберите из меню "Инструменты/Объединить субтитры..." (Tools/Join subtitles...) или нажмите клавиши [Ctrl]+[J].
В появившемся окне нажимайте кнопку Добавить (Add), и добавляйте файлы, которые необходимы, в правильном порядке. Если в порядке будет допущена ошибка, это можно исправить перетаскиванием названия файла (drag and n drop). Если файл субтитров основан на кадрах, вы сможете изменить значение FPS при помощи выделения файла и изменения значения выпадающего списка. Эту операцию можно провести с несколькими выделенными файлами одновременно.
По желанию, можно выбрать для каждого файла субтитров соответствующий ему видеофрагмент (для последнего файла субтитров этого делать не требуется), и Subtitle Workshop сможет сделать все изменения во времени самостоятельно. Чтобы выбрать видеофрагмент, выделите необходимую часть субтитров и нажмите кнопку Выбрать видеофрагмент (Set movie fragment). Если при выборе произошла ошибка, её можно поправить, нажав на Убрать видеофрагмент (Delete movie fragment). Далее выберите формат вывода, и если он основан на кадрах, FPS вывода. Для загрузки полученного в результате объединения файла, установите галочку "Загрузить файл после объединения и сохранения" (Load file after joining and saving). Установите "Пересчитать время" (Recalculate time values), если нужно, чтобы Subtitle Workshop автоматически установил задержку для файлов, следующих за первым, и вам не потребовалось делать это позднее вручную. В завершение, нажмите кнопку Объединить (Join).

### 5.5 Информация и ошибки

Это уникальная функция Subtitle Workshop - несмотря на то, что некоторые другие программы пытаются её имитировать, Информация и ошибки в программе Subtitle Workshop всё так же выдаёт большую производительность, точность и возможности.

##### 5.5.1 Ошибки и исправления

Функция умеет находить и исправлять большое количество разнообразных ошибок в субтитрах, здесь мы попытаемся рассмотреть все возможные ошибки и пути их автоматического исправления. Для этого определим порядок исправления ошибок:

1. Строки без букв (Lines without letters)
2. Пустые субтитры (Empty subtitles)
3. Повторённые субтитры (Repeated subtitles)
4. Запрещённые символы (Prohibited characters)
5. Текст перед двоеточием (Text before colon (":"))
6. Субтитры для глухих (Hearing impaired)
7. Пересечение (Overlapping)
8. Неправильные значения (Bad values)
9. Ненужные точки (Unnecessary dots)
10. Повторённые символы (Repeated character)
11. Ошибки OCR (OCR Errors)
12. "-" в однострочных субтитрах ("- " in subtitles with one line)
13. Пробел после выбранных символов (Space after custom characters)
14. Пробел перед выбранными символами (Space before custom characters)
15. Ненужные пустоты (Unnecessary spaces)
16. Субтитры больше двух строк (Subtitle over two lines)
17. Слишком большая/маленькая длительность (только поиск)
18. Слишком длинные строки (только поиск)

Ошибки с 1 по 6 расположены в начале, потому что после исправления этих ошибок субтитр в некоторых случаях может быть удалён, и поэтому остальных исправлений уже применять не нужно.
Строки без букв (Lines without letters)
Удаляет строки в субтитрах, которые не содержат букв (a-z, á-í, и т.д.). Пример:

Начальное время | Конечное время | Текст
00:00:00,250 | 00:00:01,350 | Это текст 1 !!!!!!!
00:00:00,780 | 00:00:02,150 | ї?!Ў Это текст 2

Subtitle Workshop удалит вторую строку первого субтитра и первую строку второго, так как они не содержат букв (не путайте "буквы" с "символами").
Пустые субтитры
Субтитр считается пустым, если:

1. субтитр не содержит текста (или пробелы, табуляция, и т.д.).
2. субтитр не содержит ни одной буквы или цифры. Например, текст: "- !!!!"

В обоих случаях Subtitle Workshop удалит субтитр.
Повторённые субтитры
Очень часты при распознавании текста (OCR). Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:01,010 | Давай, покупай.
00:00:01,010 | 00:00:02,000 | Давай, покупай.

Повторённые субтитры определяются по следующим признакам:

1. Текст абсолютно одинаковый.
2. Обычно один из субтитров имеет очень короткое время показа, чаще первый (как в примере).

В примере начальное время второго субтитра является конечным временем первого, и это случается очень часто, но не всегда. Именно поэтому существует настройка "Допуска повторённых субтитров" (Tolerance for repeated subtitles). Это максимальная разница между КонечноеВремя1 и НачальноеВремя2, определяющая субтитр как повторённый. После исправления, субтитр будет выглядеть так:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Давай, покупай.

Начальное время будет начальным временем первого субтитра, и конечное время будет конечным временем второго субтитра.
Запрещённые символы
Находит субтитры, содержащие запрещённые символы, и удаляет целый субтитр.
Текст перед двоеточием (":")
Текст перед двоеточием очень часто предназначен для глухих. Он показывает имя говорящего.
Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | МУЖЧИНА:|Она думает о тебе то же самое?
00:00:03,000 | 00:00:04,000 | ДЖЕРРИ:|Я не знаю.

В 80% случаев текст перед двоеточием находится в ВЕРХНЕМ РЕГИСТРЕ, поэтому вы можете установить галочку "Только если текст в верхнем регистре" ("Only if text is in capital letters"), и избежать многих проблем, например с такими субтитрами - "Я хочу тебе кое-что сказать:|Больше так не делай." После исправления, текст будет таким:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Она думает о тебе то же самое?
00:00:03,000 | 00:00:04,000 | Я не знаю.

Двоеточие не определяется, если оно находится между цифр, например, "12:30", и поэтому со временем не возникает проблем.
Субтитры для глухих
Субтитры для глухих - полный субтитр, или только часть, предназначенные специально для глухих. Большинство нормально слышащих людей не любят "шумы" и "звуки" в субтитрах, и поэтому их удаляют. Конечно, глухие люди этого не делают. Обычно субтитры для глухих заключены в круглые скобки "(" и ")" и/или квадратные скобки "[" и "]".
Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | - [Парень] | Вы хотели бы, чтобы я его убил?
00:00:03,000 | 00:00:04,000 | Да. Сможешь?
00:00:05,000 | 00:00:06,000 | [Барабан крутится, | щелчок]

Первый субтитр содержит часть для глухих, и третий субтитр полностью для глухих. После исправления результат будет таким:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Вы хотели бы, чтобы я его убил?
00:00:03,000 | 00:00:04,000 | Да. Сможешь?

Пересечение субтитров
Эта ошибка появляется, когда второй субтитр появляется на экране раньше, чем исчезает первый субтитр. Т.е. когда конечное время первого субтитра больше, чем начальное время второго. Рассмотрим пример:

Начальное время | Конечное время | Текст
00:00:00,250 | 00:00:01,350 | Это текст 1
00:00:00,780 | 00:00:02,150 | Это текст 2

Второй субтитр показывается раньше, чем первый исчезает. Subtitle Workshop умеет исправлять эту ошибку, в зависимости от длин текста субтитров. Существует три варианта:

1. Когда разница в длине текста субтитров меньше чем 5, для каждого субтитра будет установлена одинаковая длительность. Т. е. длительность каждого субтитра будет: (КонечноеВремя2 - НачальноеВремя1) / 2.
   Это подходит для примера, указанного выше, потому что длина обоих текстов одинакова, и будет установлена одинаковая длительность.
   Subtitle Workshop исправит субтитры таким образом:

   Начальное время | Конечное время | Текст
   00:00:00,250 | 00:00:01,200 | Это текст 1
   00:00:01,201 | 00:00:02,150 | Это текст 2

   Как вы видите, (2150-250) / 2 = длительность 950 миллисекунд для каждого субтитра, но для второго субтитра невозможно дать 950 миллисекунд, (требуется одна дополнительная миллисекунда), поэтому он получит только 949.
2. Если текст первого субтитра длиннее чем на 4 символа чем текст второго субтитра, будет обрезано время второго субтитра. Subtitle Workshop исправит субтитры таким образом:

   Начальное время | Конечное время | Текст
   00:00:00,250 | 00:00:01,350 | Это текст 1. Он длиннее больше чем на 4 символа.
   00:00:01,351 | 00:00:02,150 | Это текст 2

   Таким образом, мы обрезали начальное время второго субтитра, и его время показа будет меньше, чем у первого субтитра. В этом случае мы отдаём 1100 миллисекунд на первый субтитр и 799 на второй.
3. Если текст второго субтитра длиннее больше чем на 4 символа чем текст первого, время первого субтитра будет обрезано. Subtitle Workshop исправит субтитры таким образом:

   Начальное время | Конечное время | Текст
   00:00:00,250 | 00:00:00,779 | Это текст 1
   00:00:00,780 | 00:00:02,150 | Это текст 2. Он длиннее больше чем на 4 символа.

   Время показа первого субтитра - 529 миллисекунд, и второго субтитра 1370 миллисекунд.

Неправильные значения
Программа считает неправильными значения времени, когда начальное время больше чем конечное.
Пример:

Начальное время | Конечное время | Текст
00:00:02,000 | 00:00:01,000 | Это текст субтитра

Subtitle Workshop исправляет это, обменивая значения времени, и субтитр становится таким:

Начальное время | Конечное время | Тест
00:00:01,000 | 00:00:02,000 | Это текст субтитра

Ненужные точки
Удаляет четыре или более точек, следующих одна за другой ("...."), оставляя только три, за которыми следует пробел, если он нужен.
Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Да.... Нужно попробовать.....

Будет исправлено в:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Да... Нужно попробовать...

Повторённые символы
Находит символы, которые повторяются (можно настраивать что именно), например, если вы настроите "!" как повторяемый символ:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Сделай, сейчас же!!!!!!!!!!!!!!!!!!!!!!

Будет исправлено в:

00:00:01,000 | 00:00:02,000 | Сделай, сейчас же!

Работает со всеми настроенными символами. По умолчанию устанавливаются "-Ў!ї?",;\/_[]=", но вы можете добавлять/удалять символы, если хотите, в настройках окна Информация и ошибки.
Ошибки OCR (распознавание текста)
Так как разные языки имеют разные ошибки OCR, появились скрипты для исправления OCR. Более подробную информацию об этом можно прочесть здесь.
"-" в однострочных субтитрах ("-" in subtitles with one line)
Нет причины начинать однострочный субтитр символом "-" (начало диалога), когда текст принадлежит только одному актёру. Таким образом, если галочка установлена, Subtitle Workshop будет удалять символ "-" если субтитр содержит только одну строку текста.
Пробел после заданного символа
Добавляет пробел (если его нет) после любого из символов, вписанных в "Пробел после символов" (Space after characters). Например, очень полезно для добавления пробела в диалогах:
-Вот оно.
-Правда?
Превратится в:
- Вот оно.
- Правда?
Эта функция использует частичную проверку сложных слов, и она не будет добавлять пробел внутри слова "multi-line".
Пробел перед заданным символом
Добавляет пробел (если его нет) перед любым из символов, вписанных в "Пробел перед символами" (Space before characters). Полезная функция для французского языка, для добавления пробелов перед "?", "!" и ":".
Ненужные пустоты
Уничтожает ненужные пустоты (по выбору) из файла субтитров. На данный момент можно удалять такие типы пустот:

1. Возврат каретки и пробелы в начале и конце
2. Пробелы между возвратами каретки (слева и справа)
3. Двойные пробелы и возвраты каретки (двойной возврат каретки = пустая строка)
4. Пробелы перед знаками препинания
5. Пробелы после "ї" и "Ў"
6. Пробелы перед "?" и "!"
7. Пробелы в числах

Так как разные языки требуют различных пустот, все типы пустот для удаления можно настраивать.
Субтитры больше двух строк
Проверяется, имеет ли субтитр больше чем две строки, и использует Выравнивание строк для исправления.
Слишком большая/маленькая длительность
Subtitle Workshop умеет находить субтитры, время показа которых больше/меньше чем заданное значение максимума/минимума. Субтитры с маленькой длительностью могут быть нечитаемыми и субтитры с большой длительностью могут быть слишком назойливыми. Эти ошибки должны исправляться вручную.
Слишком длинные строки
Программа находит строки, количество символов в которых больше заданного значения. Слишком длинные строки могут превышать ширину экрана в некоторых проигрывателях, и поэтому считаются потенциально опасными.

##### 5.5.2 Настройки

Чтобы открыть настройки окна "Информация и ошибки" (Information and Errors Settings), нажмите клавиши [Alt]+[I] или выберите из меню "Инструменты/Информация и ошибки/Настройки..." (Tools/Information and errors/Settings...). Вдобавок чтобы попасть в настройки, вы можете нажать в окне "Информация и ошибки" кнопку "Настройки" (Settings).
Теперь рассмотрим все, что можно настраивать.

##### Основные

Отмечать ошибки в главном окне (Mark errors in main form's list)
Вы можете разрешить Subtitle Workshop помечать ошибки в субтитрах. Выберите для этого шрифт (жирный, наклонный, подчёркнутый).
Если ошибки отмечаются в главном окне, их очень легко найти и исправить вручную, и вообще во многих случаях это очень полезно. Например, если в файле много длинных трёхстрочных субтитров, программа может выделить их определённым цветом, и вы сможете быстро находить их и исправлять при помощи функции Разделить субтитр. Если найденную ошибку трудно определить "на глаз" (например, если субтитр содержит ненужные пустоты), поместите курсор мыши над субтитром с ошибкой, и через половину секунды вы увидите описание ошибки.
Отмечать ошибки при загрузке субтитров (Mark errors on load subtitle)
Если галочка установлена, осуществляется автоматический поиск ошибок каждый раз, когда вы загружаете субтитры. Имеет смысл только тогда, когда установлена галочка "Отмечать ошибки в главном окне".
Исправлять ошибки при загрузке субтитров (Fix errors on load subtitle)
Автоматически исправляет ошибки в загружаемых субтитрах.
Исправлять единичное пересечение при загрузке
Исправляет частую ошибку в субтитрах - небольшое пересечение. Пример:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Это субтитр 1
00:00:02,000 | 00:00:03,000 | Это субтитр 2

Будет изменено на:

Начальное время | Конечное время | Текст
00:00:01,000 | 00:00:02,000 | Это субтитр 1
00:00:02,001 | 00:00:03,000 | Это субтитр 2

Включение этой функции достаточно безопасно.
Файл описания OCR: (OCR definition file)
Устанавливает имя скрипта, используемого в данный момент. Скрипт должен находиться в каталоге "OCRScripts" программы Subtitle Workshop. В каталоге производится поиск файлов с расширением ".ocr", которые отображаются в выпадающем списке. Кнопка "Редактировать" (Edit) откроет Блокнот (Notepad), чтобы вы могли редактировать файл вручную, добавляя или удаляя ошибки распознавания (OCR).

##### Подробные

Повторяемые символы (Repeatable characters)
Устанаваливает символы, которые при повторении будет исправляться, если уснановлена галочка "Повторённые символы" (Repeated characters).
Запрещённые символы (Prohibited characters)
Устанавливает символы, которые не могут присутствовать в субтитрах. Если субтитр содержит хотя бы один из запрещённых символов, и установлена галочка "Запрещённые символы" (Prohibited characters), то субтитр будет удалён.
Допуск повторённых субтитров (Tolerance for repeated subtitles)
Устанавливает максимальную разницу между конечным временем первого субтитра и начальным временем второго субтитра, когда они определяются как повторённый субтитр.
Пробел после символов (Space after characters)
Устанавливает символы, с которыми работает "Пробел после заданных символов" (Space after custom characters). Символы должны следовать один за другим, не разделённые запятой или чем-либо ещё.
Пробел перед символами (Space before characters)
Устанавливает символы, с которыми работает "Пробел перед заданными символами" (Space before custom characters). Символы должны следовать один за другим, не разделённые запятой или чем-либо ещё.
Большая длительность (Too long duration)
Устанавливает максимальную длительность показа субтитра, после которой значения будут считаться слишком большими.
Маленькая длительность (Too short duration)
Устанавливает минимальную длительность показа субтитра, после которой значения будут считаться слишком маленькими.
Слишком длинная строка (Too long line)
Устанавливает максимальное количество символов, после которого строка будет считаться длинной.

##### Искать, исправить, ненужные пустоты

Вам даётся возможность сделать выбор, какие ошибки программа будет искать, какие исправлять. Также вы можете выбрать, какие ненужные пустоты программа будет находить и исправлять.

##### 5.5.3 Замена после распознавания текста (скрипты OCR)

Скрипты OCR не что иное, как набор описаний Найти-ЗаменитьНа (Find-ReplaceBy), похожих по синтаксису на HTML. Что делает их такими мощными? Доступны различные команды. Возможность использования регулярных выражений (Regular Expressions) позволяет найти и заменить какой угодно текст в любом языке. Важно запомнить, что скрипты выполняются в той последовательности, в какой идёт текст в файле.
Рассмотрим небольшой пример скрипта OCR:

    <SWOCR WordChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_сСбйнуъБЙНУЪдлпць">
    	<!-- Комментарии пишутся так же, как и в HTML -->
    	<ERROR Find="[A-ZБ-Ъ](l)" ReplaceBy="I">
    	<ERROR Find="[a-zб-ъ](I)" ReplaceBy="l">
    	<ERROR Find="\d( :)" ReplaceBy=":">
    	<ERROR UseREOnlyToFind="False" Find=",{2,}" ReplaceBy="...">
    </SWOCR>

WordChars определяет все символы алфавита для вашего языка. Строка по умолчанию указана выше. Если в скрипте строка не указана, то используется строка по умолчанию. Это наиболее часто встречающиеся ошибки OCR для английского языка, при распознавании текста, "l" (нижний регистр "L") и "I" (верхний регистр "i") распознаются как одна и та же буква, и поэтому часто возникают опечатки. Ещё одна частая ошибка - появление ненужного пробела перед двоеточием. В приведённом выше примере Subtitle Workshop при помощи регулярных выражений производит поиск ошибок. А если мы не хотим использовать регулярные выражения? Тогда нужно взглянуть на параметры, которые указывают, как производить поиск:
UseRE (Использовать Регулярные Выражения)
UseRE="True" или UseRE="False" (True - Истина, False - Ложь). Значение по умолчанию - Истина. Если значение установлено в Ложь, при поиске текста регулярные выражения использоваться не будут. Отключайте регулярные выражения только если желаете упростить написание команд поиска и замены, так как при их отключении скрипты OCR теряют часть своей силы.
UseREOnlyToFind (Использовать Регулярные Выражения только для поиска)
UseREOnlyToFind="True" или UseREOnlyToFind="False". Значение по умолчанию - Истина. Чтобы объяснить, как это работает, рассмотрим пример:

    <ERROR UseREOnlyToFind="True" Find="[a-z]at" ReplaceBy="dog">

После применения этой команды к тексту "The name of my cat is Max" текст станет "The name of my dog is Max", но подключив регулярные выражения

    <ERROR UseREOnlyToFind="False" Find="[a-z](at)" ReplaceBy="dog">

и применив к тексту "The name of my cat is Max" превратит его в "The name of my cdog is Max".
В первом случае, когда мы приступаем к замене, мы заменяем и тот текст, который является частью регулярного выражения (в примере буквы "[a-z]", находится буква "c").
Во втором случае, когда мы приступаем к замене, мы используем часть регулярного выражения ("[a-z]") для поиска текста, но не используем его для замены. Заменяться будет только часть текста в поле "Find=", которая находится между скобок, т.е. при написании регулярных выражений часть текста, которая является "константой" и не будет меняться, должна находиться в скобках. Это очень удобно для скриптов OCR (чтобы разобраться с ними получше, взгляните на содержимое файла Default.ocr).
Следующие параметры используются, только когда "UseRE" установлено в Ложь:
WholeWord (всё слово)
WholeWord="True" или WholeWord="False". Установка команды в False равноценна её отсутствию. Если установлена в True, ищет текст, расположенный после "Find=" (Find - Найти), только если текст образует слово.
CaseSensitive (чувствительно к регистру)
CaseSensitive="True" или CaseSensitive="False". Установка команды в False равноценна её отсутствию. Если установлена в True, производится поиск текста, учитывая различный регистр.
Это наиболее часто используемые команды, и при их помощи можно сделать очень много. Но это ещё не все:
PreserveCase (сохранять регистр)
Значение по умолчанию - False (Ложь). Если установить True (Истина), будет сохранять регистр искомого текста при замене. Например:

    <ERROR Find="DOG" WholeWord="True" PreserveCase="True" ReplaceBy="CAT">

Так как текст не чувствителен к регистру, Subtitle Workshop может найти текст "Dog" а не только "DOG". При замене на "CAT", программа скопирует регистр найденного текста, и заменит "Dog" на "Cat" а не на "CAT".

##### Синтаксис регулярных выражений

##### Введение

Эта часть документации взята из файла помощи TRegExpr, библиотеки Регулярных Выражений (Regular Expressions) под Delphi, написанной Андреем Сорокиным.
Регулярные выражения - это широкоиспользуемый способ описания шаблонов для поиска текста и проверки соответствия текста шаблону. Специальные метасимволы позволяют определять, например, что Вы ищете подстроку в начале входной строки или определенное число повторений подстроки.
На первый взгляд регулярные выражения выглядят страшновато (ну хорошо, на второй - еще страшнее ;) ). Однако Вы очень быстро оцените всю их мощь. Они сэкономят Вам многие часы ненужного кодирования, а в некоторых случаях будут и быстрее работать, чем вручную закодированные проверки.
Давайте начнем наше знакомство с регулярными выражениями!

##### Простое сравнение

Любой символ совпадает с самим собой, если он не относится к специальным метасимволам описанным чуть ниже.
Последовательность символов совпадает с такой же последовательностью во входной строке, так что шаблон "bluh" совпадет с подстрокой "bluh" во входной строке. Пока все просто, не так ли ?
Если необходимо, чтобы метасимволы или escape-последовательности воспринимались как обычные символы, их нужно предварять символом "\", например, метасимвол "^" обычно совпадает с началом строк, однако, если записать его как "\^", то он будет совпадать с символом "^", "\\" совпадает с "\" и т.д.
Примеры:

foobar | находит 'foobar'
\^FooBarPtr | находит '^FooBarPtr'

##### Escape-последовательности

Любой символ может быть определен с помощью escape-последовательности, так же как это делается в языках C или Perl: "\n'' означает начало строки, "\t'' - табуляцию и т.д.. Вообще, \xnn, где nn это последовательность шестнадцатеричных цифр, означает символ с ASCII-кодом nn. Если необходимо определить двухбайтный (Unicode) символ, используйте формат '\x{nnnn}', где 'nnnn' - одна или более шестнадцатеричных цифр.

\xnn | символ с шестнадцатеричным кодом nn
\x{nnnn} | символ с шестнадцатеричным кодом nnnn (более одного байта можно задавать только в режиме)
\t | табуляция (HT/TAB), можно также \x09
\n | новая строка (NL), можно также \x0a
\r | возврат каретки (CR), можно также \x0d
\f | перевод формата (FF), можно также \x0c
\a | звонок (BEL), можно также \x07
\e | escape (ESC), можно также \x1b

Примеры:

foo\x20bar | находит 'foo bar' (обратите внимание на пробел посередине)
\tfoobar | находит 'foobar' предшествуемый табуляцией

##### Перечни символов

Вы можете определить перечень, заключив символы в []. Перечень будет совпадать с любым одним символом перечисленным в нем.
Если первый символ перечня (сразу после "['') - "^'', то такой перечень совпадает с любым символом не перечисленным в перечне.
Примеры:

foob[aeiou]r | находит 'foobar', 'foober' и т.д. но не 'foobbr', 'foobcr' и т.д.
foob[^aeiou]r | находит 'foobbr', 'foobcr' и т.д.. но не 'foobar', 'foober' и т.д.

Внутри перечня символ "-'' может быть использован для определения диапазонов символов, например a-z представляет все символы между "a'' и "z'', включительно.
Если Вам необходимо включить в перечень сам символ "-'', поместите его в начало или конец перечня или предварите '\'. Если Вам необходимо поместить в перечень сам символ ']', поместите его в самое начало или предварите '\'.
Примеры:

[-az] | 'a', 'z' и '-'
[az-] | 'a', 'z' и '-'
[a\-z] | 'a', 'z' и '-'
[a-z] | все 26 малых латинских букв от 'a' до 'z'
[\n-\x0D] | #10,#11,#12,#13.
[\d-t] | цифра, '-' или 't'.
[]-a] | символ из диапазона ']'..'a'.

##### Метасимволы

Метасимволы - это специальные символы, являющиеся важнейшим понятием в регулярных выражениях. Существует несколько групп метасимволов.
Метасимволы - разделители строк

^ | начало строки
$ | конец строки
\A | начало текста
\Z | конец текста
. | любой символ в строке

Примеры:

^foobar | находит 'foobar' только если он в начале строки
foobar$ | находит 'foobar' только если он в конце строки
^foobar$ | находит 'foobar' только если это единственное слово в строке
foob.r | находит 'foobar', 'foobbr', 'foob1r' и т.д.

Метасимвол "^" по умолчанию совпадает только в начале входного текста, а метасимвол "$" - только в конце текста. Внутренние разделители строк, имеющиеся в тексте, не будут совпадать с "^'' и "$''.
Однако, если Вам необходимо работать с текстом как с многострочным, чтобы "^'' совпадал после каждого разделителя строки внутри текста, а "$'' - перед каждым разделителем, то Вы можете включить модификатор /m.
Метасимволы \A и \Z аналогичны "^'' и "$'', но на них не действует модификатор /m, т.е. они всегда совпадают только с началом и концом всего входного текста.
Метасимвол ".'' по умолчанию совпадает с любым символом, однако, если Вы выключите модификатор /s, то '.' не будет совпадать с разделителями строк.
TRegExpr интерпретирует разделители строк так, как это рекомендовано на www.unicode.org ( http://www.unicode.org/unicode/reports/tr18/ ):
"^" совпадает с началом входного текста, а также, если включен модификатор /m, с точкой непосредственно следующей после \x0D\x0A, \x0A или \x0D (если Вы используете Unicode-версию TRegExpr, то также \x2028 или \x2029 или \x0B или \x0C или \x85). Обратите внимание, что он не совпадает в промежутке внутри последовательности \x0D\x0A.
"$" совпадает с концом входного текста, а также, если включен модификатор /m, с точкой непосредственно предшествующей \x0D\x0A, \x0A или \x0D (если Вы используете Unicode-версию TRegExpr, то также \x2028 или \x2029 или \x0B или \x0C или \x85). Обратите внимание, что он не совпадает в промежутке внутри последовательности \x0D\x0A.
"." совпадает с любым символом, но если выключен модификаторr /s, то "." не совпадает с \x0D\x0A и \x0A и \x0D (если Вы используете Unicode-версию TRegExpr, то не совпадает также с \x2028 и \x2029 и \x0B и \x0C и \x85).
Обратите внимание, что "^.*$" (шаблон для пустой строки) не совпадает с пустой строкой вида \x0D\x0A, но совпадает с \x0A\x0D.
Вы можете перенастроить вышеописанное поведение при обработке многострочных текстов - см. описания свойств LineSeparators и LinePairedSeparator, скажем, Вы можете перенастроиться на использование только Unix-разделителей строк \n или только DOS/Windows-разделителей \r\n или же смешанных разделителей (так и настроено по умолчанию) или вообще определить свои собственные разделители строк!

##### Метасимволы - стандартные перечни символов

\w | буквенно-цифровой символ или "_"
\W | не \w
\d | цифровой символ
\D | не \d
\s | любой "пробельный" символ (по умолчанию - [ \t\n\r\f])
\S | не \s

Стандартные перечни \w, \d и \s можно использовать и внутри перечней символов.
Примеры:

foob\dr | находит 'foob1r', ''foob6r' и т.д. но не 'foobar', 'foobbr' и т.д.
foob[\w\s]r | находит 'foobar', 'foob r', 'foobbr' и т.д. но не 'foob1r', 'foob=r' и т.д.

TRegExpr использует свойства SpaceChars и WordChars для того, чтобы определять стандартные перечни \w, \W, \s, \S, т.е. Вы легко можете переопределить состав этих перечней.

##### Метасимволы - границы слов

\b | Совпадает на границе слова
\B | Совпадает не на границе слова

Граница слова (\b) это точка между двумя символами, один из которых удовлетворяет \w, а другой - \W (в любом порядке), при этом перед началом и после конца строки подразумевается \W.

##### Метасимволы - повторения

После любого элемента регулярного выражения может следовать очень важный тип метасимвола - повторитель. Используя их Вы можете определить число допустимых повторений предшествующего символа, метасимвола или подвыражения.

* | ноль или более раз ("жадный"), то же что {0,}
+ | один или более раз ("жадный"), то же что {1,}
? | ноль или один раз ("жадный"), то же что {0,1}
{n} | точно n раз ("жадный")
{n,} | не менее n раз ("жадный")
{n,m} | не менее n но не более m раз ("жадный")
*? | ноль или более раз ("не жадный"), то же что {0,}?
+? | один или более раз ("не жадный"), то же что {1,}?
?? | ноль или один раз ("не жадный"), то же что {0,1}?
{n}? | точно n раз ("не жадный")
{n,}? | не менее n раз ("не жадный")
{n,m}? | не менее n но не более m раз ("не жадный")

Таким образом, {n,m} задает минимум n повторов и максимум - m. Повторитель {n} эквивалентен {n,n} и задает точно n повторов. Повторитель {n,} задает минимум n повторов. Теоретически величина параметров n и m не ограничена, но рекомендуется не задавать большие значения, поскольку в некоторых ситуациях это может потребовать существенных затрат времени и ОЗУ при обработке такого повторителя в связи с рекурсивным характером работы.
Если фигурные скобки встречаются в "неправильном" месте, где они не могут быть восприняты как повторитель, то они вопринимаются просто как символы.
Примеры:

foob.*r | находит 'foobar', 'foobalkjdflkj9r' и 'foobr'
foob.+r | находит 'foobar', 'foobalkjdflkj9r' но не 'foobr'
foob.?r | находит 'foobar', 'foobbr' и 'foobr' но не 'foobalkj9r'
fooba{2}r | находит 'foobaar'
fooba{2,}r | находит 'foobaar', 'foobaaar', 'foobaaaar' и т.д.
fooba{2,3}r | находит 'foobaar', или 'foobaaar' но не 'foobaaaar'

Небольшое пояснение по поводу "жадности". "Жадные" варианты повторителей пытаются захватить как можно большую часть входного текста, в то время как "не жадные" - как можно меньшую. Например, 'b+' как и 'b*' примененные к входной строке 'abbbbc' найдут 'bbbb', в то время как 'b+?' найдет только 'b', а 'b*?' - вообще - пустую строку; 'b{2,3}?' найдет 'bb', в то время как 'b{2,3}' найдет 'bbb'.
Вы можете переключить все повторители в выражении в "не жадный" режим, воспользовавшись модификатором /g.

##### Метасимволы - варианты

Вы можете определить перечень вариантов, используя метасимвол "|'' для их разделения, например "fee|fie|foe" найдет "fee'' или "fie'' или "foe'', (так же как "f(e|i|o)e"). В качестве первого варианта воспринимается все от предыдущего метасимвола "('' или "['' или от начала выражения до первого метасимвола "|'', в качестве последнего - все от последнего "|'' до конца выражения или до ближайшего метасимвола ")''. Обычно, чтобы не запутаться, набор вариантов всегда заключают в скобки, даже если без этого можно было бы обойтись.
Варианты пробуются начиная с первого и попытки завершаются сразу же как удастся подобрать такой при котором совпадет вся последующая часть выражения (подробнее см.Механизм работы). Это означает, что варианты не обязательно обеспечат "жадное" поведение. Например, если применить выражение "foo|foot" ко входной строке "barefoot'', то будет найдено "foo'' так это первый вариант который позволил совпасть всему выражению. Обратите внимание, что метасимвол "|'' воспринимается как обычный символ внутри перечней символов, например, [fee|fie|foe] означает ровно то же самое что и [feio|].
Примеры:

foo(bar|foo) | находит 'foobar' или 'foofoo'.

##### Метасимволы - подвыражения

Метасимволы ( ... ) могут также использоваться для задания подвыражений - по завершении поиска выражения Вы можете обратиться к любому подвыражению используя свойства MatchPos, MatchLen и Match, а также подставлять подвыражения в некий шаблон, используя метод Substitute).
Подвыражения нумеруются слева направо, в порядке появления открывающих скобок.
Первое подвыражение имеет номер '1' (выражение в целом - '0', к нему можно обращаться в Substitute как '$0' так и '$&').
Примеры:

(foobar){8,10} | находит строку содержащую 8, 9 или 10 копий 'foobar'
foob([0-9]|a+)r | находит 'foob0r', 'foob1r' , 'foobar', 'foobaar', 'foobaar' и т.д.

##### Метасимволы - обратные ссылки

Метасимволы от \1 до \9 воспринимаются как обратные ссылки. \ совпадает с ранее найденным подвыражением #<n>.
Примеры:

(.)\1+ | находит 'aaaa' и 'cc'.
(.+)\1+ | также находит 'abab' и '123123'
(['"]?)(\d+)\1 | находит "13" (в дв.кавычках), или '4' (в один.кавычках) или 77 (без кавычек) и т.д.

##### Модификаторы

Модификаторы служат для изменения режимов работы TRegExpr.
Вы можете изменять модификаторы несколькими способами.
Любой модификатор может меняться с помощью специальной конструкции (?...) внутри регулярного выражения.
Также, Вы можете присвоить значение соответствующему свойству экземпляра объекта TRegExpr (например, ModifierX для изменения модификатора /x, или ModifierStr для изменения сразу нескольких модификаторов). Значения по умолчанию для новых экземпляров объектов TRegExpr определены в глобальных константах, например RegExprModifierX определяет значение по умолчанию для ModifierX.

i | Регистро-независимый режим (по умолчанию использует выбранный в ОС язык по умолчанию), (см. также InvertCase)
m | Воспринимать входной текст как многострочный, при этом метасимволы "^'' и "$'' будут совпадать не только в начале и конце текста в целом, но и в начале и в конце всех имеющихся в тексте строк (см. также Разделители строк)
s | Воспринимать входной текст как одну строку. При этом метасимвол ".'' совпадает с любым символом, если же этот модификатор выключен, то он не совпадает с разделителями строк (см.также Разделители строк).
g | Не стандартный модификатор. Выключая его Вы переключаете все повторители в "не жадный" режим (по умолчанию этот модификатор включен). Т.е. если его отключить, то все '+' работают как '+?', '*' как '*?' и т.д.
x | Позволяет форматировать шаблон чтобы обеспечить более легкую читаемость (см. описание ниже).
r | Не стандартный модификатор. Если включен, то диапазоны вида а-я включают также букву 'ё', А-Я включают 'Ё', а а-Я включает вообще все русские буквы.

Модификатор /x заставляет TRegExpr игнорировать пробелы, табуляции и разделители строк, что позволяет форматировать текст выражения. Кроме того, если встречается символ #, то все последующие символы до конца строки воспринимаются как комментарий, например:

    (
    (abc) # Комментарий 1
      |   # Пробелы внутри выражения также игнорируются
    (efg) # Комментарий 2
    )

Естественно, это означает что, если Вам нужно вставить в выражение пробел, табуляцию или разделитель строки или #, то в расширенном (/x) режиме это можно сделать только предваряя их '/' или используя /xnn (внутри перечней символов все эти символы воспринимаются как обычно)

##### Расширения Perl

(?imsxr-imsxr)
Позволяет изменять значения модификаторов.
Примеры:

(?i)Saint-Petersburg | находит 'Saint-petersburg' и 'Saint-Petersburg'
(?i)Saint-(?-i)Petersburg | находит 'Saint-Petersburg' но не 'Saint-petersburg'
(?i)(Saint-)?Petersburg | находит 'Saint-petersburg' и 'saint-petersburg'
((?i)Saint-)?Petersburg | находит 'saint-Petersburg', но не 'saint-petersburg'

(?#text) Комментарий, просто игнорируется. Обратите внимание, что в комментарии такого вида невозможно поместить символ ")", поскольку он воспринимается как конец комментария.

### 5.6 Взять FPS из AVI

Функция полезна, если у вас есть видеофайл и подходящие к нему субтитры (основанные на кадрах) и вы желаете их отредактировать, но не знаете количество кадров в секунду, которое имеет видео. Позволяет обнаружить FPS видеофайла и установить его в Subtitle Workshop.
Есть два варианта использования этой функции:

1. Используя пунк меню "Инструменты/Взять FPS из AVI" (Tools/Add FPS from AVI). Этот метод зачитывает только заголовок видеофайла, и работает только с файлами типа AVI (MPEG, ASF, WMV и другие не поддерживаются). Очень быстрый, и если файл - корректный AVI, работает очень неплохо.
2. Загрузив видеофайл через пункт меню "Видео/Открыть" (Movie/Open). Этот метод использует DirectX, и поэтому должен работать с любым типом видеофайлов. Иногда встречаются файлы AVI, в которых DirectX обнаруживает FPS как 0. В таком случае, Subtitle Workshop попытается зачитать заголовок видеофайла AVI.

Каждый раз, когда вы используете эту функцию, FPS видеофайла помещается во все выпадающие списки, где можно выбирать FPS.

### 5.7 Внешний показ

Позволяет проверить субтитры, с которыми вы работаете, в вашем любимом видеопроигрывателе. Видеопроигрыватель должен поддерживать командную строку, и как минимум один из поддерживаемых программой Subtitle Workshop форматов субтитров.
В окне Настройки (Settings) перейдите на Внешний показ (External preview) и далее Основные (General). Здесь нужно выбрать программу видеопроигрывателя. Если видеопроигрыватель привязан к файлам типа .AVI, можно нажать кнопку "Найти связанную программу".
После этого решите, желаете ли вы при каждом внешнем показе выбирать новый видеофайл, или будете использовать один и тот же.
В разделе Дополнительно (Advanced) нужно настроить некоторые параметры. Выберите формат для сохранения временных субтитров, в котором они будут посылаться внешнему видеопроигрывателю (будут сохраняться в каталоге temp). Выбирайте формат оригинала, если вы уверены, что видеопроигрыватель поддерживает формат субтитров, которые вы создаёте/редактируете.
И наконец, нужно установить параметры, которые будут посланы видеопроигрывателю. VIDEO_FILE устанавливает видеофайл, и SUBT_FILE устанавливает файл субтитров. Вы можете добавлять и другие параметры - например, полноэкранный показ. Лучше всего передавать имя SUBT_FILE и VIDEO_FILE между " ", чтобы не было проблем с именами файлов.
Когда настройки будут завершены, вы сможете проверить субтитры, нажав клавишу F8 или выбрав из меню "Инструменты/Внешний показ" (Tools/External preview).
Проверенные видеопроигрыватели:

1. BSPlayer
   "VIDEO_FILE" "SUBT_FILE" -fs
   (Сохранить временный файл в формате SubRip)
2. ViPlay
   /MOVIE:"VIDEO_FILE" /SUBTITLE:"SUBT_FILE" /FS
   (Сохранить временный файл в любом формате)

### 5.8 Встроенный предварительный показ

#### Окно предварительного показа: проверяйте, как выглядят субтитры

Режим становится доступным лишь тогда, когда вы загрузите файл субтитров и видеофайл (смотрите также Загрузка файла субтитров и Загрузка видеофайла). Если это сделано, появится панель управления видео. Размер окна для видео может быть изменён при помощи перетягивания мышью за край (появляется новый курсор) вверх или вниз. Изменение размера окна повлияет и на размер самой картинки.
Внимание: если у вас установлен автоматический фильтр для показа субтитров, например VobSub, он будет работать и в этом окне. Это может стать причиной одновременного показа одних субтитров поверх других. В этом случае, переименуйте файл с субтитрами, или удалите установленный фильтр.
Окно состоит из самого видео, полосы прокрутки, набора кнопок и элементов, показывающих текущее время показа, длительность и FPS видеофайла. Название открытого файла субтитров будет отображаться в верхней части окна, после времени. Шрифт, цвет, размер и другие параметры можно изменить в разделе Настройки (Settings).
Кнопки (слева направо):

- Пуск/Пауза (Play/Pause)
  Щелчок для запуска, ещё один для паузы.
- Стоп (Stop)
  Останавливает показ и перематывает видеофайл на время 00:00:00.000.
- Прокрутка списка (Toggle scroll list)
  Когда используется (находится внутри квадрата), Subtitle Workshop будет подсвечивать в главном окне субтитр, отображаемый в окошке видео, и при необходимости, прокручивать список.
- Предыдущий/следующий субтитр
  Эти две кнопки устанавливают время проигрывателя на начальное время предыдущего/следующего субтитра.
- Назад & Вперёд (Rewind & Forward)
  Если щёлкнуть по одной из этих кнопок, видео будет перемотано вперёд или назад на время, установленное в Настройках (Settings). Значение по умолчанию - 0.5 секунды (500 миллисекунд).
  Если кнопка нажата и удерживается, позволяет быстро просматривать видео. Оба способа могут использоваться во время проигрывания, паузы или останова.
- Изменить скорость вывода (Alter playback rate)
  Если используется (находится внутри квадрата), показ видео будет замедлен/ускорен до значения, установленного в Настройках (Settings).
  По умолчанию используется 50%.
- Сдвинуть субтитр
  Сдвигает выделенные субтитры таким образом, что начальное время первого становится текущим временем проигрывателя, не затрагивая длительности сдвигаемых субтитров, как и быстрая версия "Установить задержку".
- Начальное время & Конечное время (Set Start Time & Set Final Time)
  Когда нажата кнопка, устанавливается значение начального или конечного времени показа выделенного субтитра.
  "Начальное время" установит начальное время субтитра в значение времени, в котором в данный момент находится видео, а "Конечное время" установит конечное время субтитра и перейдёт к следующему субтитру.
- Отметить первый субтитр & Отметить последний субтитр (Start Subtitle & End Subtitle)
  Устанавливают значение, используемой программой, взяв его из текущего значения времени видео. Очень полезная функция для создания субтитров "с нуля".
- Отметить первую/последнюю синхроточку, Отметить первый/последний диалог (Mark as first/last synch point, Mark as first/last dialog in video)
  Эти кнопки подробно рассмотрены в разделе Выравнивание субтитров.

Полоса прокрутки аналогична видеопроигрывателям, таким как Windows Media Player, ViPlay или любой другой. Наименьшее возможное перемещение зависит от длины видеофайла.

### 5.9 Извлечение языка из многоязыковых SAMI

Функция предназначена для извлечения одного или нескольких языков из многоязыкового файла формата SAMI. Subtitle Workshop не умеет работать с многоязыковыми файлами SAMI, и этой функцией можно выделить нужные языки, которые затем будут загружены в программу как одноязычные SAMI.

## ЧАсто задаваемые ВОпросы [ЧАВО]

Обновлённую версию ЧАВО (FAQ) можно найти здесь.

1. Я пытаюсь загрузить субтитры, и получаю всё время одно и то же сообщение об ошибке. Что мне делать?
   Прочтите "Загрузка файла субтитров".
2. У меня есть предложение по улучшению программы Subtitle Workshop. Вы их принимаете? Могу я послать автору письмо?
   Конечно, вы можете послать автору письмо по электронной почте. Он всегда отвечает на письма. Если ваше предложение действительно стоящее, то это будет зависеть только от наличия свободного времени (если предложение не потребует огромных изменений в тексте программы), а следовательно, не должно возникнуть проблем. Не забывайте, что автор может не понимать тот язык, на котором вы говорите. Поэтому пишите на английском. На русском можно написать переводчику данного руководства. ;-)
3. Формат субтитров X сохраняется неверно! X на самом деле это Y!
   Пожалуйста опишите проблему как можно более детально, и она будет исправлена так быстро, как это возможно.
4. Я пишу в программе на языке X, но Subtitle Workshop неправильно отображает символы. Что мне делать?
   Если вы не можете видеть правильные символы, войдите в Настройки/Основные/Символы (Settings/General/Charset) и смените "Символы оригинала" (Original charset) и "Символы перевода" (Translation charset) на нужный набор. Сделайте это, если символы неверно отображаются в списках и текстовых полях. Если символы неправильно отображаются в кнопках, пунктах меню и так далее, вам нужно поменять настройки в файле языка программы Subtitle Workshop. Внутри файла языка нужно изменить значение "Font Charset". (Таблица наборов символов представлена в файле charsets.txt в каталоге файлов языков.) Если вы всё ещё не можете видеть правильные символы, зайдите в панель управления Windows, найдите "Regional and Language Options", и на закладке "Advanced" установите значение "Language for non-Unicode programs" для вашего языка.
5. Есть ли способ для быстрого перехода к следующему/предыдущему субтитру в списке?
   Для перехода к следующему субтитру, нажмите клавиши [Shift]+[Enter], а для перехода к предыдущему субтитру нажмите клавиши [Ctrl]+[Enter]. Каждый раз, когда вы переходите к следующему/предыдущему субтитру, элемент, имевший фокус, не потеряет его. Это значит, что если вы при редактировании текста субтитра 1, нажмёте [Shift]+[Enter], то сможете сразу редактировать текст второго субтитра. То же самое происходит и со значениями времени.
6. Как я могу выделить несколько субтитров одновременно?
   Стандартные способы Windows прекрасно работают в Subtitle Workshop. Нажмите клавишу [Ctrl] и не отпуская её, щёлкайте по субтитрам, которые нужно выделить. Если вы хотите выделить несколько субтитров, которые следуют один за другим, выделите первый из них, нажмите клавишу [Shift], и не отпуская её, выделите последний субтитр. Чтобы убрать выделение с субтитра, удерживая клавишу [Ctrl], щёлкните на нужном субтитре.
7. Есть ли способ для быстрого перехода к субтитру, который содержит ошибку, когда я нахожусь в окне "Информация и ошибки" (Information and errors)?
   Конечно. Сделайте двойной щелчок мышью на нужном субтитре в списке ошибок, и окажетесь в главном окне.
8. Мне надоело нажимать [Ctrl]+[I] много раз подряд! Могу ли я сразу перейти к следующей ошибке?
   Сначала вам один раз придётся проверить ошибки, нажав клавиши [Ctrl]+[I] или F9. После этого вы сможете переходить к следующей ошибке, нажимая F12.
9. Когда я покидаю режим предварительного показа видео, видеофайл не закрывается, а продолжает играть! Это ошибка?
   Нет, так было сделано по просьбе.
10. Могу ли я вручную добавить FPS к субтитрам, не используя "Взять FPS из AVI"?
    Просто измените значение в "Желаемые FPS" (FPS) или "Начальные FPS" (Input FPS). Десятичной точкой должна быть "," и нажмите [Enter].
11. Есть ли способ применить такую задержку к выделенным субтитрам, чтобы начальное первого был 0, а другие имели соответствующие значения времени?
    Да. Выделите необходимые субтитры и нажмите клавиши [Ctrl]+[Z].
12. Можно ли имитировать двойной щелчок мышью на выделенном субтитре при помощи клавиатуры?
    Выделите субтитр и нажмите клавиши [Alt]+[Enter].
13. Как я могу задать свои комбинации клавиш?
    Откройте файл "shortcuts.key" из каталога Subtitle Workshop в любом текстовом редакторе, прочтите информацию в начале файла, измените файл, сохраните, и запустите Subtitle Workshop.
14. Станет ли Subtitle Workshop когда-нибудь shareware?
    *Категорическое* НЕТ.

## Контактная информация

Посылайте свои комментарии, идеи, предложения, файлы языков, сообщения об ошибках по адресу, указанному в разделе "Contact us" на http://www.urusoft.net (на английском языке).
Это можно также сделать на форуме.
В Интернете нас можно найти по адресу: http://www.urusoft.net.
Перевод на русский язык: Bedazzle

## Лицензия

Программа представлена 'КАК ЕСТЬ', без каких-либо гарантий. Вся ответственность за использование данной программы ложится на пользователя. Автор не несёт ответственности за любой прямой или косвенный вред, полученный при помощи программы.
Программа может свободно распространяться, но не может быть продана или перепродана, распространена как часть коммерческого пакета, использована для получения прибыли, распространена как поддержка коммерческого пакета или другим образом использована для коммерческой работы без письменного согласия автора. Исключение составляют журналы (описано ниже).
Журналы, заинтересованные в публикации программного обеспечения URUSoft на CD как части выпуска обязаны послать нам сообщение посредством электронной почты, в котором должны оповестить нас о том, что программа будет распространяться, и привести полное название и версию программы, а также название и номер журнала.
При любом последующем использовании программы при публикации в журнале всё вышеописанное должно повторяться.
Содержимое файла установки и файлов программы должно оставаться неизменным, таким, как распространяет их автор. Все файлы должны распространяться вместе, в первоначальном виде.
Если программа является обновлением более старой версии, вы можете использовать её или распространять только вместе со старой версией. Все названия принадлежат владельцам торговых марок. Автор данной программы НЕ связан с какой-либо компанией.
ЕСЛИ ВЫ НЕ СОГЛАСНЫ С ДАННЫМИ УСЛОВИЯМИ, ВЫ ОБЯЗАНЫ ПРЕКРАТИТЬ ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ И УДАЛИТЬ ЕЁ ФАЙЛЫ.